In this work, I present a comprehensive study on the online estimation of state of charge (SOC) for lithium-ion batteries used in battery energy storage systems. Accurate SOC estimation is critical for ensuring the safe and stable operation of such systems, especially under complex environmental noise and model parameter uncertainties. I adopt a Thevenin equivalent circuit model and employ the forgetting factor recursive least squares (FFRLS) method for online parameter identification based on interval constant current discharge data. Subsequently, I utilize the unscented Kalman filter (UKF) to estimate the SOC with high accuracy. The proposed FFRLS-UKF method is compared with the extended Kalman filter (EKF) and the ampere-hour (AH) integration method. Experimental results demonstrate that my approach achieves a rapid convergence under various initial SOC conditions and attains an estimation accuracy as high as 99.2% when the initial SOC and model parameters are error-free. This study significantly contributes to the development of robust SOC estimation techniques for battery energy storage systems in practical applications.
The structure of this paper is as follows. First, I establish the Thevenin equivalent circuit model and derive the relationship between open-circuit voltage (OCV) and SOC. Second, I perform online parameter identification using FFRLS and validate the model accuracy. Third, I describe the UKF-based SOC estimation algorithm. Fourth, I present experimental results and discussions, including comparative analyses with EKF and AH methods, as well as robustness tests under different initial SOC values. Finally, I conclude with a summary of the findings.
1. Equivalent Circuit Model and Parameter Identification
To accurately represent the dynamic behavior of lithium-ion batteries in battery energy storage systems, I choose the Thevenin equivalent circuit model. This model consists of an internal resistance \(R_0\), a polarization resistance \(R_1\), and a polarization capacitance \(C_1\) connected in parallel, as shown in the schematic below. The mathematical equations governing the model are:
\[
\dot{U}_1 = \frac{I}{C_1} – \frac{U_1}{R_1 C_1}
\]
\[
U = V_{OCV} – I R_0 – U_1
\]
where \(U_1\) is the voltage across the polarization capacitor, \(I\) is the load current, \(U\) is the terminal voltage, and \(V_{OCV}\) is the open-circuit voltage. The OCV-SOC relationship is obtained by conducting an interval constant current discharge experiment. The battery is fully charged and then discharged in steps of 5% of the rated capacity, with a 900-second rest period after each step. The measured OCV values at different SOC levels are fitted using a sixth-order polynomial:
\[
V_{OCV} = A + A_0 S + A_1 S^1 + A_2 S^2 + A_3 S^3 + A_4 S^4 + A_5 S^5 + A_6 S^6
\]
where \(S\) denotes the SOC. The fitted coefficients are listed in the table below.
| Coefficient | Value |
|---|---|
| \(A\) | 240.4653 |
| \(A_0\) | 2.4823 |
| \(A_1\) | 21.5399 |
| \(A_2\) | -162.5463 |
| \(A_3\) | 622.9878 |
| \(A_4\) | 1308.5389 |
| \(A_5\) | 1538.6869 |
| \(A_6\) | -950.8749 |
To identify the three unknown parameters \(R_0\), \(R_1\), and \(C_1\) online, I use the FFRLS algorithm. The continuous-time transfer function of the Thevenin model is discretized using the bilinear transform. The discrete transfer function is given by:
\[
G(z^{-1}) = \frac{V_{OC}(z^{-1}) – V_t(z^{-1})}{I(z^{-1})} = \frac{c_2 + c_3 z^{-1}}{1 + c_1 z^{-1}}
\]
where
\[
c_1 = \frac{T – 2R_1C_1}{T + 2R_1C_1}, \quad
c_2 = \frac{R_0 T + R_1 T + 2R_0 R_1 C_1}{T + 2R_1 C_1}, \quad
c_3 = \frac{R_0 T + R_1 T – 2R_0 R_1 C_1}{T + 2R_1 C_1}
\]
and \(T\) is the sampling period. The FFRLS algorithm with a forgetting factor of 0.95 is applied to recursively estimate \(c_1, c_2, c_3\) from measured voltage and current data. The physical parameters are then recovered as:
\[
R_0 = \frac{c_2 – c_3}{1 – c_1}, \quad
R_1 = \frac{c_2 + c_3}{1 + c_1} – R_0, \quad
C_1 = \frac{T(1 – c_1)}{2(1 + c_1) R_1}
\]
The identified parameters over the discharge cycle are summarized in the table below. These values are used to reconstruct the terminal voltage, and the comparison between the simulated and measured voltages shows a high degree of agreement, with errors within 0.1 V, validating the accuracy of the identification process.
| Parameter | Symbol | Value |
|---|---|---|
| Ohmic internal resistance | \(R_0\) | 0.045 \(\Omega\) |
| Polarization resistance | \(R_1\) | 0.012 \(\Omega\) |
| Polarization capacitance | \(C_1\) | 3500 F |
2. SOC Estimation Using UKF
Based on the identified model, I design the state-space equations for SOC estimation. The state vector is chosen as \(x = [\text{SOC}, U_1]^T\), the input is the current \(I\), and the output is the terminal voltage \(U\). The discretized system equations are:
\[
\begin{bmatrix}
\text{SOC}_{k+1} \\
U_{1,k+1}
\end{bmatrix}
=
\begin{bmatrix}
1 & 0 \\
0 & \exp\left(-\frac{T}{R_1 C_1}\right)
\end{bmatrix}
\begin{bmatrix}
\text{SOC}_{k} \\
U_{1,k}
\end{bmatrix}
+
\begin{bmatrix}
\frac{T}{Q_0} \\
R_0\left(1-\exp\left(-\frac{T}{R_1 C_1}\right)\right)
\end{bmatrix}
I_k + w_k
\]
\[
U_k = F(\text{SOC}_k) – U_{1,k} – I_k R_{0,k} + v_k
\]
where \(Q_0\) is the rated capacity, \(w_k\) and \(v_k\) are process and measurement noises with zero mean and covariances \(Q\) and \(R\), respectively. The nonlinear function \(F(\cdot)\) represents the OCV-SOC polynomial.
The UKF algorithm employs an unscented transform to propagate a set of sigma points through the nonlinear dynamics, thereby capturing the mean and covariance accurately. The key steps are as follows:
Step 1: Initialization
\[
\hat{x}_0 = E[x_0], \quad P_0 = E[(x_0 – \hat{x}_0)(x_0 – \hat{x}_0)^T]
\]
Step 2: Sigma point generation and time update
\[
\chi_{i,k-1} = \hat{x}_{k-1} \pm \sqrt{(n+\lambda)P_{k-1}} \quad (i=1,\dots,2n)
\]
\[
\chi_{i,k|k-1}^* = f(\chi_{i,k-1})
\]
\[
\hat{x}_{k|k-1} = \sum_{i=0}^{2n} \omega_i^m \chi_{i,k|k-1}^*
\]
\[
P_{k|k-1} = \sum_{i=0}^{2n} \omega_i^c (\chi_{i,k|k-1}^* – \hat{x}_{k|k-1})(\chi_{i,k|k-1}^* – \hat{x}_{k|k-1})^T + Q
\]
Step 3: Measurement update
\[
\gamma_{i,k|k-1} = h(\chi_{i,k|k-1})
\]
\[
\hat{y}_{k|k-1} = \sum_{i=0}^{2n} \omega_i^m \gamma_{i,k|k-1}
\]
\[
P_{yy} = \sum_{i=0}^{2n} \omega_i^c (\gamma_{i,k|k-1} – \hat{y}_{k|k-1})(\gamma_{i,k|k-1} – \hat{y}_{k|k-1})^T + R
\]
\[
P_{xy} = \sum_{i=0}^{2n} \omega_i^c (\chi_{i,k|k-1}^* – \hat{x}_{k|k-1})(\gamma_{i,k|k-1} – \hat{y}_{k|k-1})^T
\]
\[
K_k = P_{xy} P_{yy}^{-1}
\]
\[
\hat{x}_k = \hat{x}_{k|k-1} + K_k (y_k – \hat{y}_{k|k-1})
\]
\[
P_k = P_{k|k-1} – K_k P_{yy} K_k^T
\]
The above procedure is iterated at each time step to produce the optimal SOC estimate. The UKF is particularly effective for the highly nonlinear behavior of battery energy storage systems because it does not rely on linearization, thus avoiding the large errors that can occur with EKF.
3. Experimental Validation and Discussion
I conduct experiments using a 18650 lithium-ion battery under controlled conditions. The battery is discharged with a constant current profile (1C rate) from full charge (SOC=1.0) to empty. The total sampling number is 13,000. The noise covariances are set as: process noise covariance \(Q = 1 \times 10^{-7} I\) and measurement noise covariance \(R = 0.01\). The forgetting factor for FFRLS is 0.95. Three methods are evaluated: the AH integration method, EKF, and the proposed UKF.
| Method | ME (%) | MSE (%) | Accuracy (%) |
|---|---|---|---|
| AH Integration | 0.9337 | 0.1082 | 97.93 |
| EKF | 0.7051 | 0.0602 | 98.61 |
| UKF (proposed) | 0.3997 | 0.0201 | 99.20 |
The results clearly demonstrate that the proposed UKF method achieves the lowest mean error (ME) and mean square error (MSE), and the highest accuracy among the three techniques. The AH method suffers from accumulation of integration errors, while EKF is limited by its first-order linearization. UKF, by contrast, maintains high fidelity across the entire discharge range.
To evaluate the robustness of the algorithm, I test different initial SOC values: 1.00, 0.75, and 0.50. The convergence behaviors are summarized in the table below. The UKF consistently converges faster than EKF, typically within about 100-130 steps, whereas EKF requires 700 steps or more. This rapid convergence is crucial for battery energy storage systems where the initial SOC may not be precisely known.
| Initial SOC | UKF Convergence Step | EKF Convergence Step |
|---|---|---|
| 1.00 | — (already converged) | — |
| 0.75 | 104 | 690 |
| 0.50 | 133 | 722 |
The superior performance of UKF is attributed to its ability to adjust the Kalman gain based on the error between the measured and estimated terminal voltage. When the initial SOC error is large, the voltage error is large, leading to a larger gain that corrects the state estimate quickly. This self-correcting mechanism makes UKF highly suitable for practical online SOC estimation in battery energy storage systems.
Below is an illustration of a typical battery energy storage system setup where the proposed algorithm can be deployed.

4. Conclusion
In this study, I have developed a robust online SOC estimation method for battery energy storage systems based on the FFRLS-UKF framework. The Thevenin equivalent circuit model parameters are accurately identified using FFRLS with a forgetting factor. The UKF algorithm then provides precise SOC estimation even under significant initial SOC errors and measurement noise. Experimental comparisons with AH integration and EKF methods demonstrate that the proposed approach yields the highest accuracy (99.2%) and the fastest convergence. The method is well-suited for real-time applications in containerized energy storage systems where reliability and accuracy are paramount.
Future work could extend this approach to account for battery aging and temperature variations, further enhancing the adaptability of the algorithm for long-term operation of battery energy storage systems.
