I begin this study from a practical and urgent standpoint: the global climate crisis and the depletion of fossil energy resources are forcing the automotive industry into a deep transformation. Electric vehicles have become a central component of low-pollution, high-efficiency transportation systems. Within this transition, the electric vehicle battery pack is the most critical energy storage and release component. Its state of charge (SOC) must be estimated in real time and with high accuracy so that the battery management system (BMS) can perform effective monitoring, energy optimization, safety warning, and lifetime extension. Therefore, I focus on developing a robust SOC estimation method that can operate under multiple operating conditions, strong noise, and abrupt state changes. The proposed method is called the Correct Covariance Strong Tracking Extended Kalman Filter (CSTEKF). It combines the advantages of strong tracking extended Kalman filtering (STEKF) and covariance correction to overcome the performance limitations of the conventional extended Kalman filter (EKF) in dynamic and noisy environments.
To make the discussion concrete, I first summarize the performance of common battery types. Table 1 compares lead-acid, nickel-metal hydride, and lithium-ion batteries. Lithium-ion batteries clearly dominate in energy density, cycle life, operating temperature range, and self-discharge rate. For this reason, the electric vehicle battery pack in this study is based on lithium-ion technology.
| Performance | Lead-Acid Battery | Nickel-Metal Hydride Battery | Lithium-Ion Battery |
|---|---|---|---|
| Energy density (mAh/g) | 30–40 | 50–100 | 100–260 |
| Cycle life (times) | 300 | 500 | 500+ |
| Operating temperature (°C) | -15 to 50 | -20 to 60 | -20 to 60 |
| Self-discharge rate | 30% | 20% | 2% |
I then review the main SOC estimation methods that have been reported. These include ampere-hour integration, discharge experiments, AC impedance, open-circuit voltage (OCV), neural networks, and Kalman filtering. Each method has distinct advantages and limitations. Ampere-hour integration is simple but accumulates error. Discharge experiments are accurate but offline and time-consuming. AC impedance is sensitive to temperature and operating conditions. OCV requires long rest times. Neural networks require large high-quality datasets and have poor interpretability. Kalman filtering, especially EKF, is widely used because it can fuse model predictions with measurements in real time. However, EKF suffers from linearization errors, sensitivity to initial SOC, and poor robustness under strong measurement noise. These limitations motivate my proposed CSTEKF algorithm.
The electric vehicle battery pack in this work is a lithium-ion battery pack. Its SOC is defined as the ratio of remaining capacity to nominal capacity. The basic definition is given by Eq. (1).
$$SOC(t) = \frac{Q_t}{Q_N} \times 100\% \tag{1}$$
Equivalently, using current integration, SOC can be written as Eq. (2).
$$SOC(t) = SOC_0 – \frac{1}{C_E} \int_0^t \eta I(t) dt \tag{2}$$
Here \(SOC_0\) is the initial SOC, \(C_E\) is the rated capacity, \(\eta\) is the Coulomb efficiency, and \(I(t)\) is the instantaneous current. In practice, SOC is influenced by temperature, aging, discharge rate, and internal resistance. I designed experiments to quantify these effects.

Temperature has a strong nonlinear effect on battery capacity. I performed constant-current discharge tests at different temperatures. The results are summarized in Table 2. At low temperatures, the available capacity decreases significantly. This is mainly due to increased electrolyte viscosity, slower lithium-ion migration, and higher charge-transfer resistance. At high temperatures, capacity is higher, but long-term exposure can accelerate degradation.
| Temperature (°C) | Actual capacity (Ah) | Capacity retention (%) |
|---|---|---|
| -20 | 63 | 87.5 |
| -10 | 66 | 91.7 |
| 0 | 69 | 95.8 |
| 15 | 71 | 98.6 |
| 25 | 72 | 100.0 |
| 55 | 72 | 100.0 |
Cycle aging also affects the electric vehicle battery pack. I conducted 200 accelerated cycles on a 2.5 Ah cell. The capacity retention decreases with cycle number, as shown in Table 3. After 200 cycles, the capacity remains about 97% of the initial value. Although this seems modest, the reduction directly influences SOC estimation accuracy because SOC depends on the actual available capacity.
| Cycle number | Capacity retention (%) |
|---|---|
| 0 | 100.0 |
| 50 | 99.3 |
| 100 | 98.6 |
| 150 | 97.8 |
| 200 | 97.0 |
Discharge rate is another key factor. I tested 0.3C, 0.5C, 1C, 2C, 3C, and 5C discharges. The voltage curves show that higher discharge rates cause a faster voltage drop and lower available capacity. Table 4 summarizes the qualitative behavior. For continuous discharge at 1.5C or below, the difference between actual and nominal capacity is small enough that it can be neglected in SOC estimation. For higher rates, the polarization effect becomes significant.
| Discharge rate | Voltage behavior | Capacity utilization |
|---|---|---|
| 0.3C | Slow voltage decline, stable plateau | High |
| 0.5C | Slight polarization | High |
| 1C | Moderate voltage drop | Moderate to high |
| 2C | Noticeable voltage drop | Moderate |
| 3C | Fast voltage decline | Low to moderate |
| 5C | Sharp drop near end of discharge | Low |
For accurate SOC estimation, I need an equivalent circuit model. I compared electrochemical models, neural network models, and equivalent circuit models. Electrochemical models are physically accurate but computationally expensive. Neural network models have strong nonlinear fitting ability but require large datasets and lack interpretability. Equivalent circuit models balance accuracy and complexity. Among them, the Rint model, Thevenin model, PNGV model, GNL model, and N-order RC model are common. I selected the second-order RC equivalent circuit model because it represents both electrochemical polarization and concentration polarization while keeping the computation manageable for a BMS.
The second-order RC model is governed by Eq. (3) through Eq. (5).
$$U_T = U_{OCV} – U_1 – U_2 – I_T R_0 \tag{3}$$
$$\dot{U}_1 = \frac{I_T}{C_1} – \frac{U_1}{R_1 C_1} \tag{4}$$
$$\dot{U}_2 = \frac{I_T}{C_2} – \frac{U_2}{R_2 C_2} \tag{5}$$
Here \(R_0\) is the ohmic internal resistance, \(R_1\) and \(R_2\) are polarization resistances, \(C_1\) and \(C_2\) are polarization capacitances, \(U_1\) and \(U_2\) are the voltages across the RC networks, \(U_T\) is the terminal voltage, \(U_{OCV}\) is the open-circuit voltage, and \(I_T\) is the load current. The SOC state equation is Eq. (6).
$$SOC_t = SOC_0 – \frac{\int_0^t \eta I(t) dt}{C_N} \tag{6}$$
The state-space form is written in Eq. (7) and Eq. (8).
$$\begin{bmatrix} \dot{U}_{OCV} \\ \dot{U}_1 \\ \dot{U}_2 \end{bmatrix} =
\begin{bmatrix}
0 & 0 & 0 \\
0 & -\frac{1}{R_1 C_1} & 0 \\
0 & 0 & -\frac{1}{R_2 C_2}
\end{bmatrix}
\begin{bmatrix} U_{OCV} \\ U_1 \\ U_2 \end{bmatrix} +
\begin{bmatrix}
-\frac{1}{C_N} \\
\frac{1}{C_1} \\
\frac{1}{C_2}
\end{bmatrix} I_T \tag{7}$$
$$U_T = \begin{bmatrix} 1 & -1 & -1 \end{bmatrix}
\begin{bmatrix} U_{OCV} \\ U_1 \\ U_2 \end{bmatrix} – I R_0 \tag{8}$$
I performed hybrid pulse power characterization (HPPC) tests to identify the model parameters. The OCV–SOC relationship was obtained after long rest periods. Table 5 lists the measured OCV values at different SOC levels.
| SOC (%) | OCV (V) |
|---|---|
| 10 | 3.328 |
| 20 | 3.416 |
| 30 | 3.462 |
| 40 | 3.498 |
| 50 | 3.539 |
| 60 | 3.603 |
| 70 | 3.705 |
| 80 | 3.812 |
| 90 | 4.033 |
| 100 | 4.189 |
I used a seventh-order polynomial to fit the OCV–SOC curve. The fitted expression is Eq. (9).
$$V_{ocv} = 34.7 SOC^7 – 117.6 SOC^6 + 161.8 SOC^5 – 119.2 SOC^4 + 54.3 SOC^3 – 16.2 SOC^2 + 3.3 SOC + 3.116 \tag{9}$$
The model parameters \(R_0\), \(R_1\), \(R_2\), \(C_1\), and \(C_2\) were identified using exponential fitting of the HPPC voltage response. Table 6 shows the identified parameters at different SOC points. As SOC decreases, \(R_0\) increases, which reflects reduced electrode activity. The \(R_1 C_1\) network, which represents concentration polarization, has larger time constants than the \(R_2 C_2\) network, confirming that concentration polarization dominates the voltage dynamics.
| SOC | R0 (mΩ) | R1 (mΩ) | R2 (mΩ) | C1 (F) | C2 (F) |
|---|---|---|---|---|---|
| 0.1 | 22.8 | 27.8 | 4.7 | 1011.8 | 456.42 |
| 0.2 | 23.7 | 36.1 | 5.2 | 967.71 | 420.79 |
| 0.3 | 24.2 | 28.4 | 5.5 | 962.91 | 355.44 |
| 0.4 | 24.7 | 6.1 | 31.1 | 321.05 | 935.51 |
| 0.5 | 24.8 | 31.5 | 6.7 | 887.07 | 271.71 |
| 0.6 | 25.3 | 37.3 | 7.8 | 863.13 | 238.11 |
| 0.7 | 25.7 | 40.0 | 9.4 | 836.13 | 210.55 |
| 0.8 | 26.8 | 53.9 | 11.8 | 834.82 | 202.01 |
| 0.9 | 28.7 | 104.7 | 6.4 | 754.42 | 214.51 |
I validated the model in MATLAB/Simulink. The terminal voltage error remained within \(\pm 0.05\) V over the test cycle. This confirms that the second-order RC model with the identified parameters accurately represents the electric vehicle battery pack dynamics.
Next, I consider SOC estimation using the extended Kalman filter. For a nonlinear discrete system, the state and measurement equations are given by Eq. (10).
$$\begin{cases}
x_{k+1} = f(x_k, u_k) + w_k \\
y_k = g(x_k, u_k) + v_k
\end{cases} \tag{10}$$
Here \(w_k \sim N(0, Q_k)\) and \(v_k \sim N(0, R_k)\) are uncorrelated process and measurement noises. Linearizing \(f\) and \(g\) around the current estimate gives the EKF recursion. The prediction, gain, and update steps are shown in Eq. (11) through Eq. (15).
$$\hat{x}_k^- = f(x_{k-1}, u_{k-1}) \tag{11}$$
$$P_k^- = A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1} \tag{12}$$
$$K_k = P_k^- C_k^T (C_k P_k^- C_k^T + R_k)^{-1} \tag{13}$$
$$\hat{x}_k = \hat{x}_k^- + K_k (Z_k – g(\hat{x}_k^-, u_k)) \tag{14}$$
$$P_k = (I – K_k C_k) P_k^- \tag{15}$$
Although EKF can estimate SOC, it has three major weaknesses. First, strong measurement noise causes slow convergence and large errors. Second, EKF is sensitive to the initial SOC. If the initial SOC is far from the true value, convergence takes a long time. Third, when the system state changes abruptly, the first-order Taylor expansion introduces large linearization errors. These problems are unacceptable for an electric vehicle battery pack in real driving conditions.
To overcome these problems, I propose the CSTEKF algorithm. It combines STEKF and covariance correction. STEKF introduces a fading factor \(\lambda_k\) to adjust the prediction covariance. The fading factor is computed from the residual covariance. The relevant equations are Eq. (16) through Eq. (21).
$$r_k = Z_k – g(\hat{x}_k^-, u_k) \tag{16}$$
$$E_k =
\begin{cases}
r_1 r_1^T, & k = 1 \\
\frac{\rho E_{k-1} + r_k r_k^T}{1 + \rho}, & k > 1
\end{cases} \tag{17}$$
$$N_k = E_k – \beta R_k – C_k Q_{k-1} C_k^T \tag{18}$$
$$M_k = C_k A_{k-1} P_{k-1} A_{k-1}^T C_k^T \tag{19}$$
$$e_k = \frac{tr(N_k)}{tr(M_k)} \tag{20}$$
$$\lambda_k =
\begin{cases}
e_k, & e_k \ge 1 \\
1, & e_k < 1
\end{cases} \tag{21}$$
The prediction covariance then becomes Eq. (22).
$$P_k^- = \lambda_k A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1} \tag{22}$$
The covariance correction step further improves the estimate. After the posterior estimate \(\hat{x}_k\) is obtained, I recompute the observation matrix as Eq. (23).
$$\tilde{C}_k = \frac{\partial g(x_k, u_k)}{\partial x_k}\bigg|_{x_k = \hat{x}_k} \tag{23}$$
Then I correct the Kalman gain and the covariance, as shown in Eq. (24) through Eq. (26).
$$\tilde{K}_k = \frac{P_k \tilde{C}_k^T}{\tilde{C}_k P_k \tilde{C}_k^T + R_k} \tag{24}$$
$$\tilde{x}_k = \hat{x}_k^- + \tilde{K}_k r_k \tag{25}$$
$$\tilde{P}_k = (I – \tilde{K}_k \tilde{C}_k) P_k (I – \tilde{K}_k \tilde{C}_k)^T + \tilde{K}_k R_k \tilde{K}_k^T \tag{26}$$
The CSTEKF algorithm iterates these steps. It uses the fading factor to adapt to abrupt changes and the covariance correction to reduce the influence of noise and model uncertainty. I implemented the algorithm in MATLAB/Simulink and compared it with EKF and STEKF. The electric vehicle battery pack was operated under intermittent discharge. The true SOC was generated by ampere-hour integration. The initial SOC was 0.9. The process noise covariance was \(Q_0 = diag(0.001, 0.001, 0.001)\), and the measurement noise covariance was \(R_0 = [1]\). For STEKF and CSTEKF, the weakening factor was \(\beta = 1.2\) and the forgetting factor was \(\rho = 0.9\).
I first tested the case with initial state \(x_0 = [0.8, 0, 0]\). All three algorithms eventually converge, but the estimation errors differ significantly. CSTEKF gives the smallest error, STEKF is intermediate, and EKF has the largest error. Around 3400 s, I introduced strong measurement noise. EKF deviated from the true SOC for a long period. In contrast, STEKF and CSTEKF recovered quickly. CSTEKF showed the best anti-interference performance.
I then tested abrupt state changes by doubling the discharge current between 2000 s and 2200 s. STEKF and CSTEKF both tracked the fast change, but CSTEKF responded faster and with higher accuracy. EKF performance degraded noticeably.
Finally, I tested a large initial error with \(x_0 = [0.1, 0, 0]\). CSTEKF, STEKF, and EKF converged to the true value at approximately 40 s, 52 s, and 130 s, respectively. This demonstrates that CSTEKF corrects the initial SOC error much faster than the other two algorithms.
To evaluate the algorithms objectively, I used mean absolute error (MAE), mean relative error (MRE), and root mean squared error (RMSE). Table 7 and Table 8 summarize the results for \(x_0 = [0.8, 0, 0]\) and \(x_0 = [0.1, 0, 0]\), respectively. In both cases, CSTEKF achieves the lowest MAE, MRE, and RMSE. This confirms that CSTEKF is more robust and accurate for the electric vehicle battery pack under strong noise and fast state changes.
| Algorithm | MAE | MRE | RMSE |
|---|---|---|---|
| EKF | 0.012679 | 0.049104 | 0.01834 |
| STEKF | 0.0064869 | 0.028341 | 0.0093169 |
| CSTEKF | 0.0036344 | 0.015256 | 0.0051752 |
| Algorithm | MAE | MRE | RMSE |
|---|---|---|---|
| EKF | 0.029589 | 0.068345 | 0.086876 |
| STEKF | 0.016489 | 0.039685 | 0.069241 |
| CSTEKF | 0.011672 | 0.024413 | 0.052004 |
From these results, I conclude that the proposed CSTEKF algorithm provides a reliable solution for SOC estimation in an electric vehicle battery pack. It effectively handles inaccurate initial SOC, strong measurement noise, and abrupt state changes. Compared with EKF and STEKF, it achieves lower estimation error and stronger robustness. The second-order RC model with HPPC-based parameter identification provides a solid foundation for the algorithm. The OCV–SOC seventh-order polynomial improves the accuracy of the measurement equation. The fading factor in STEKF ensures fast tracking of sudden changes, while the covariance correction reduces the adverse effects of noise and model uncertainty.
In summary, I have designed and validated a complete SOC estimation framework for an electric vehicle battery pack. The framework includes battery testing, model selection, parameter identification, EKF analysis, and the proposed CSTEKF algorithm. The experimental data cover temperature effects, cycle aging, discharge rate effects, and HPPC tests. The simulation results demonstrate that CSTEKF outperforms EKF and STEKF in terms of MAE, MRE, and RMSE under multiple challenging conditions. This work provides both a theoretical basis and an engineering solution for high-precision, robust SOC estimation in battery management systems.
For future work, I plan to extend the model to multi-time-scale fusion models that can better represent battery dynamics under different operating conditions. I will also investigate online parameter identification methods so that the electric vehicle battery pack can adapt to changing temperature, aging, and load profiles in real time. Another important direction is to combine SOC estimation with state of health (SOH) assessment to build a comprehensive battery state monitoring system. These improvements will further enhance the performance and practicality of battery management systems for electric vehicles.
