BlockWerk Documentation
🔋

Battery SOC EKF

Advanced

Le bloc BatterySocEkf estime l'état de charge (State of Charge, SOC) d'une cellule de batterie à partir des deux mesures physiques réelles dont dispose un système de gestion de batterie (BMS) : le courant traversant la cellule et sa tension aux bornes. Il exécute un filtre de Kalman étendu (EKF) sur un circuit électrique équivalent à une ou deux branches RC. La mesure de tension compense ainsi la dérive de l'intégration coulombienne, tandis que le modèle dynamique corrige le retard de polarisation de la cellule.

De plus, le bloc peut identifier en ligne le décalage (bias/offset) du capteur de courant — cause principale de la dérive du comptage de coulombs. Il délivre également son incertitude statistique (σ), permettant au BMS d'afficher le SOC avec une marge de tolérance garantie (ex. SOC ± 2 %).

La courbe de tension en circuit ouvert (OCV) est fournie sous forme de table, évaluée de façon linéaire par morceaux (linear) ou par spline cubique monotone (smooth). Le filtre relinéarise cette courbe à chaque période d'échantillonnage autour de son point de fonctionnement estimé.

Simuler dans BlockWerk

Bac à sable interactif directement dans votre navigateur — aucune installation, moteur WebAssembly.

Simuler dans BlockWerk →

Modèle Mathématique

x=[SOC, V1, V2, b],I=Im−b (courant vrai ; Im mesureˊ, b deˊcalage capteur)SOC˙=−η I3600 Q,V˙j=−VjRjCj+ICj (j=1,2),b˙=0V=OCV(SOC)−V1−V2−R0I,H=[d OCVd SOC, −1, −1, R0]Discreˊtisation exacte sur Ts avec bloqueur d’ordre zeˊro ; Qd par meˊthode de Van LoanMise aˋ jour iteˊreˊe : xi+1=x^−+Ki (z−h(xi)−Hi(x^−−xi)),Ki=P−Hi⊤/(HiP−Hi⊤+R)x = [\text{SOC},\ V_1,\ V_2,\ b],\qquad I = I_m - b\ \text{(courant vrai ; } I_m \text{ mesuré, } b \text{ décalage capteur)} \dot{\text{SOC}} = -\frac{\eta\, I}{3600\,Q},\qquad \dot{V}_j = -\frac{V_j}{R_j C_j} + \frac{I}{C_j}\ (j = 1, 2),\qquad \dot{b} = 0 V = \text{OCV}(\text{SOC}) - V_1 - V_2 - R_0 I,\qquad H = \left[\tfrac{d\,\text{OCV}}{d\,\text{SOC}},\ -1,\ -1,\ R_0\right] \text{Discrétisation exacte sur } T_s \text{ avec bloqueur d'ordre zéro ; } Q_d \text{ par méthode de Van Loan} \text{Mise à jour itérée : } x_{i+1} = \hat{x}^- + K_i\,(z - h(x_i) - H_i(\hat{x}^- - x_i)),\quad K_i = P^- H_i^\top / (H_i P^- H_i^\top + R)

Où :

  • I_m est le courant mesuré en ampères (positif en décharge) et V la tension aux bornes en volts.
  • Q est la capacité nominale en Ah, et η l'efficacité faradique en charge.
  • La discrétisation s'adapte automatiquement à la période d'échantillonnage via Van Loan.
  • H est la pente locale de l'OCV calculée au SOC prédit.
  • La désactivation de la deuxième branche (R2=0R_2 = 0) et de l'offset ramène l'algorithme à l'EKF classique à deux états.
  • Une itération correspond à l'EKF classique ; davantage d'itérations activent l'EKF itéré (IEKF).

Entrées & Sorties

Direction ID Label Type Status
→ In in1 I number Required
→ In in2 V number Required
→ In in3 Reset number Optional
→ In in4 Dropout number Optional
← Out soc_hat SOC number Output
← Out soc_sigma σ SOC number Output
← Out v1_hat V₁ number Output
← Out v2_hat V₂ number Output
← Out bias_hat I bias number Output
← Out voc_hat OCV number Output
← Out jacobian dOCV/dSOC number Output
← Out k_gain_0 K_SOC number Output
← Out innovation Innov. number Output
← Out innovation_cov S number Output
← Out nis NIS number Output

Paramètres

Paramètres Label Type Défaut Description
sampleTime Sample Time number 1 Filter period in seconds
socInit Initial SOC Estimate number 0.5 Fraction 0…1
v1Init Initial V1 Estimate number 0
pSoc Initial SOC Variance number 0.01 How unsure the initial SOC is; 0.01 is σ = 10 % SOC
pV1 Initial RC Voltage Variance number 0.000001 Per RC branch; small, since a rested cell has V1 ≈ V2 ≈ 0
pBias Initial Bias Variance number 0 How unsure the current sensor's offset is; 0 leaves the offset out of the model, 0.01 is σ = 0.1 A
qSoc Process Noise SOC number 1e-8 Noise density per second, so the filter does not change with the sample time
qV1 Process Noise RC Voltage number 0.000001 Noise density per second, per RC branch
qBias Process Noise Bias number 0 How fast the sensor offset may drift, as a density per second; 0 for a constant offset
rMeas Measurement Noise number 0.0001 Variance of the voltage measurement in V²
r0 R0 (Ω) number 0.05 Ohmic resistance
r1 R1 (Ω) number 0.02 Polarisation resistance of the fast branch
c1 C1 (F) number 1000 Polarisation capacitance of the fast branch
r2 R2 (Ω) number 0 Resistance of a second, slow RC branch; 0 leaves the branch out
c2 C2 (F) number 30000 Capacitance of the second RC branch
capacity Capacity (Ah) number 3.2
chargeEfficiency Charge Efficiency number 1 Coulombic efficiency while charging (current < 0); Li-ion cells are typically 0.99–0.999
ocvSoc OCV Table SOC text 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 SOC breakpoints, ascending
ocvVoltage OCV Table Voltage text 3.00 3.50 3.65 3.72 3.78 3.84 3.90 3.97 4.05 4.14 4.20 Open-circuit voltage at each breakpoint in V
ocvInterpolation OCV Interpolation select linear Linear matches a LookupTable exactly; Smooth (monotone cubic) has no slope jumps at the breakpoints, which steadies the filter's gain
iterations Update Iterations number 1 1 is the classic EKF; 3 relinearises at the corrected estimate (iterated EKF), which helps where the OCV curve bends sharply

Exemples d'Utilisation

Détermination du SOC d'une cellule au repos

Une cellule stabilisée à 3,72 V (30 % de SOC réel) est mesurée avec un capteur de tension bruité (σ=50 mV\sigma = 50\text{ mV}) à 10 Hz. Partant d'une estimation erronée de 60 %, le filtre converge en 1,5 s à moins de 2 % d'erreur.

Compensation de la dérive de mesure de courant

Un offset systématique de 0,2 A provoquerait une accumulation d'erreur sans fin en simple comptage coulombien. Le filtre identifie la divergence avec la tension mesurée, compense l'offset b et stabilise l'estimation.

Remarques & Bonnes Pratiques

  • Sortie σ SOC : SOC ± 2σ donne l'intervalle de confiance à 95 %. L'indicateur NIS vérifie la validité statistique des réglages.
  • Entrée Valid : Permet au filtre de continuer en intégration coulombienne pure lors des coupures de signal capteur.
  • Modèle à deux branches RC : Capture avec fidélité les dynamiques rapides d'activation et la diffusion lente des ions lithium.
  • Reset : Une impulsion positive réinitialise tous les états et matrices de covariance.

Composants Associés