In my research on electric vehicle energy management, the real-time and accurate estimation of the State of Charge (SOC) of a lithium-ion traction battery is a fundamental task that directly influences the reliability, safety, and durability of the entire battery system. The traction battery is not merely a power source; it is the core energy buffer that determines the vehicle’s driving range, acceleration capability, and regenerative braking efficiency. Therefore, the development of a robust SOC estimation algorithm that can operate under strong measurement noise, rapidly changing operating conditions, and uncertain initial states is of great practical importance. In this paper, I propose an improved filtering method, called the Corrected Covariance Strong Tracking Extended Kalman Filter (CSTEKF), which is specifically designed for the SOC estimation of a lithium-ion traction battery. I first study the internal characteristics of the battery and establish a second-order RC equivalent circuit model. Then, I identify the model parameters through the Hybrid Pulse Power Characteristic (HPPC) test. Finally, I implement the proposed CSTEKF algorithm and compare it with the conventional Extended Kalman Filter (EKF) and the Strong Tracking Extended Kalman Filter (STEKF). The simulation results demonstrate that my method achieves higher accuracy and better robustness when the traction battery experiences dynamic load changes and noisy measurements.
1. Basic Characteristics of a Lithium-Ion Traction Battery
The lithium-ion traction battery operates based on the reversible intercalation and deintercalation of lithium ions between the positive and negative electrodes. During charging, lithium ions leave the positive electrode and migrate through the electrolyte to the negative electrode, while electrons travel through the external circuit. During discharging, the opposite process occurs. This electrochemical mechanism gives the traction battery high energy density, low self-discharge rate, and long cycle life compared with lead-acid or nickel-metal hydride batteries. However, the SOC of a traction battery is affected by many physical and chemical factors. Temperature, for example, changes the electrolyte viscosity and the charge transfer resistance. The aging state of the battery, reflected in the loss of cyclable lithium and the increase of internal resistance, also changes the capacity and the open-circuit voltage (OCV) characteristics. The discharge rate modifies the polarization overpotential and therefore affects the terminal voltage response.
In my experimental work, I designed a series of tests to quantify the influence of these factors on the traction battery’s capacity and voltage behavior. For instance, I measured the actual capacity of a traction battery under different ambient temperatures ranging from -20 °C to 55 °C. The results show that the deliverable capacity decreases significantly at low temperatures because the ionic conductivity of the electrolyte drops. On the other hand, high temperatures improve the available capacity in the short term, but they accelerate degradation in the long run. I also performed cyclic aging tests to see how the capacity retention declines as the number of charge-discharge cycles increases. After 200 cycles, the available capacity fell to about 97% of its nominal value. In addition, I evaluated the effect of discharge rate on the voltage profile. At high rates, the terminal voltage drops more quickly and the usable capacity appears smaller due to concentration polarization. Table 1 summarizes the three main characteristics of a traction battery that I considered in this study.
| Characteristic | Meaning | Impact on SOC estimation |
|---|---|---|
| Voltage characteristic | OCV varies nonlinearly with SOC; terminal voltage includes OCV minus polarization voltages | Maps OCV to SOC; dynamic voltage curves provide observable data |
| Internal resistance characteristic | Sum of ohmic resistance and polarization resistance; changes with SOC, temperature, and aging | Causes instantaneous voltage jumps and slow transients; must be accurately modeled |
| Capacity characteristic | Maximum charge that can be extracted under specified conditions; decreases with aging and low temperature | Directly used in coulomb counting; unknown capacity leads to SOC drift |
These observations motivated me to adopt a model-based estimation technique that does not rely solely on ampere-hour integration. Instead, I combine an electrical equivalent circuit model with a recursive Kalman-type filter that can correct errors caused by initial uncertainty, unknown process noise, and measurement disturbances.
2. Equivalent Circuit Model of the Traction Battery
Among the many available battery models, the electro-chemical models provide detailed insight but are too complex for real-time control. The neural network models require large amounts of training data and are difficult to interpret. Equivalent circuit models, on the other hand, offer a balanced compromise between accuracy and computational efficiency. After comparing several circuit topologies including the Rint model, the first-order Thevenin model, the PNGV model, and the GNL model, I selected a second-order RC equivalent circuit as the basis for the SOC observer.
The second-order RC model consists of a voltage source representing the open-circuit voltage \(U_{OCV}\) as a function of SOC, an ohmic resistor \(R_0\), and two parallel resistor-capacitor networks. The first RC network, with parameters \(R_1\) and \(C_1\), represents the electrochemical polarization process. The second network, with parameters \(R_2\) and \(C_2\), represents the concentration polarization process. The terminal voltage \(U_T\) of the traction battery can be described by the following equations:
\[
\begin{cases}
U_T = U_{OCV} – U_1 – U_2 – I_T R_0, \\
\dot{U}_1 = -\frac{U_1}{R_1 C_1} + \frac{I_T}{C_1}, \\
\dot{U}_2 = -\frac{U_2}{R_2 C_2} + \frac{I_T}{C_2},
\end{cases}
\]
where \(I_T\) is the current flowing through the traction battery and \(U_1, U_2\) are the voltages across the two RC networks. This model is more accurate than a first-order model because it separates the fast electrochemical polarization from the slower diffusion-limited concentration polarization. At the same time, it is not as computationally heavy as higher-order models. The state vector of the model can be chosen as
\[
x = \begin{bmatrix} SOC & U_1 & U_2 \end{bmatrix}^T.
\]
Using Kirchhoff’s law and the definition of SOC, I derived the continuous-time state-space representation
\[
\begin{bmatrix}
\dot{SOC} \\
\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}
SOC \\
U_1 \\
U_2
\end{bmatrix}
+
\begin{bmatrix}
-\frac{\eta}{C_N} \\
\frac{1}{C_1} \\
\frac{1}{C_2}
\end{bmatrix}
I_T,
\]
where \(\eta\) is the coulombic efficiency and \(C_N\) is the nominal capacity of the traction battery. The output equation is
\[
U_T = U_{OCV}(SOC) – U_1 – U_2 – I_T R_0.
\]
Because \(U_{OCV}(SOC)\) is nonlinear, I need to linearize this equation when applying the extended Kalman filter. The nonlinear observation function is driven by the OCV-SOC curve, which I identified through experiments as a seventh-order polynomial.
3. Experimental Setup and Parameter Identification
3.1 OCV-SOC Curve Identification
To estimate the SOC of a traction battery, I first need a precise relationship between the open-circuit voltage and the SOC. I performed a series of intermittent discharge tests in which the battery was discharged at a constant current for a fixed duration, followed by a long rest period to allow the voltage to reach equilibrium. After each rest period, I recorded the OCV and computed the corresponding SOC from the known amount of charge removed. The test was carried out at a constant ambient temperature of 25 °C to eliminate temperature effects. Table 2 gives a subset of 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 |
Using the least-squares curve fitting technique in MATLAB, I fitted a seventh-order polynomial to the measured OCV-SOC data. The resulting function is
\[
\begin{aligned}
U_{OCV}(SOC) = &35.2\,SOC^7 – 120.1\,SOC^6 + 165.3\,SOC^5 – 121.8\,SOC^4 \\
&+ 55.6\,SOC^3 – 16.8\,SOC^2 + 3.4\,SOC + 3.102.
\end{aligned}
\]
This high-order polynomial provides a very accurate approximation of the traction battery’s equilibrium voltage over the complete SOC range. The error between the fitted curve and the measured data remains below 0.05 V, which is acceptable for SOC estimation purposes.
3.2 HPPC Test and Parameter Identification
For the identification of the ohmic resistance and the polarization parameters, I applied the HPPC test. The traction battery is first fully charged and then subjected to a sequence of pulse discharge and rest segments. During each pulse, a current of 1C is applied for 180 seconds, followed by a rest period of 120 minutes. This procedure allows me to observe both the instantaneous voltage drop caused by the ohmic resistor and the slower voltage relaxation caused by the RC networks.
A typical voltage response during a single pulse is shown conceptually in Fig. 1, where the voltage drops abruptly when the current is applied, then continues to decline more slowly as the polarization capacitors become charged. When the current is interrupted, the voltage rises instantly due to the disappearance of the ohmic drop, followed by a gradual recovery as the polarization voltages decay.

From the HPPC voltage response, I determined the ohmic resistance \(R_0\) as
\[
R_0 = \frac{(V_A – V_B) + (V_D – V_C)}{2I},
\]
where \(V_A\) is the voltage just before the discharge pulse, \(V_B\) is the voltage immediately after the pulse starts, \(V_C\) is the voltage just before the pulse ends, and \(V_D\) is the voltage immediately after the current is interrupted. For the polarization parameters, I used the zero-input response of the RC networks during the rest period. The voltage relaxation can be expressed as
\[
U_T(t) = U_{OCV} – U_{1}(0) e^{-t/\tau_1} – U_{2}(0) e^{-t/\tau_2},
\]
where \(\tau_1 = R_1 C_1\) and \(\tau_2 = R_2 C_2\). By fitting a double-exponential function to the voltage recovery data, I extracted \(\tau_1\), \(\tau_2\), and the initial polarization voltages. Combined with the zero-state response during the current pulse, I calculated the individual values of \(R_1, C_1, R_2, C_2\) for each SOC level. Table 3 reports the identified parameters at several SOC points.
| SOC | \(R_0\) (mΩ) | \(R_1\) (mΩ) | \(R_2\) (mΩ) | \(C_1\) (F) | \(C_2\) (F) |
|---|---|---|---|---|---|
| 0.1 | 22.8 | 27.8 | 4.7 | 1011.8 | 456.4 |
| 0.2 | 23.7 | 36.1 | 5.2 | 967.7 | 420.8 |
| 0.3 | 24.2 | 28.4 | 5.5 | 962.9 | 355.4 |
| 0.4 | 24.7 | 6.1 | 31.1 | 321.1 | 935.5 |
| 0.5 | 24.8 | 31.5 | 6.7 | 887.1 | 271.7 |
| 0.6 | 25.3 | 37.3 | 7.8 | 863.1 | 238.1 |
| 0.7 | 25.7 | 40.0 | 9.4 | 836.1 | 210.6 |
| 0.8 | 26.8 | 53.9 | 11.8 | 834.8 | 202.0 |
| 0.9 | 28.7 | 104.7 | 6.4 | 754.4 | 214.5 |
I validated the identified model by comparing its simulated terminal voltage with the measured voltage under a variable current profile. The model output closely matched the real measurements, with a maximum voltage error of about 0.05 V. This verifies that the second-order RC model is appropriate for the dynamic simulation of the traction battery.
4. Extended Kalman Filter for SOC Estimation
Once the traction battery model is established, I can design a SOC observer. The classic Extended Kalman Filter extends the linear Kalman filter to nonlinear systems by using a first-order Taylor expansion around the current state estimate. Consider the discrete-time nonlinear system
\[
\begin{cases}
x_{k+1} = f(x_k,u_k) + w_k, \\
y_k = g(x_k,u_k) + v_k,
\end{cases}
\]
where \(w_k\) and \(v_k\) are zero-mean Gaussian noises with covariance matrices \(Q_k\) and \(R_k\), respectively. In the EKF, I define the Jacobian matrices
\[
A_k = \left. \frac{\partial f}{\partial x} \right|_{\hat{x}_k}, \qquad
C_k = \left. \frac{\partial g}{\partial x} \right|_{\hat{x}_k}.
\]
For the traction battery model, the discrete-time state transition matrix is
\[
A_k =
\begin{bmatrix}
1 & 0 & 0 \\
0 & e^{-\Delta t / (R_1 C_1)} & 0 \\
0 & 0 & e^{-\Delta t / (R_2 C_2)}
\end{bmatrix},
\]
and the input matrix is
\[
B_k =
\begin{bmatrix}
-\Delta t / C_N \\
R_1 \left(1 – e^{-\Delta t / (R_1 C_1)}\right) \\
R_2 \left(1 – e^{-\Delta t / (R_2 C_2)}\right)
\end{bmatrix}.
\]
The observation matrix is
\[
C_k =
\begin{bmatrix}
\dfrac{\partial U_{OCV}}{\partial SOC} & -1 & -1
\end{bmatrix}.
\]
The EKF recursion proceeds as follows. First, the prior state estimate is computed by
\[
\hat{x}_k^- = f(\hat{x}_{k-1}, u_{k-1}).
\]
Then the prior error covariance matrix is
\[
P_k^- = A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1}.
\]
The Kalman gain is given by
\[
K_k = P_k^- C_k^T \left( C_k P_k^- C_k^T + R_k \right)^{-1}.
\]
The posterior state estimate is
\[
\hat{x}_k = \hat{x}_k^- + K_k \left( y_k – g(\hat{x}_k^-, u_k) \right).
\]
Finally, the posterior covariance matrix is updated by
\[
P_k = (I – K_k C_k) P_k^-.
\]
In my simulation of an intermittently discharging traction battery, the EKF successfully tracked the SOC when the initial error was moderate. However, I noticed serious limitations of the conventional EKF. First, when a large measurement noise disturbance was introduced, the SOC estimate deviated strongly from the true value and the filter required a long time to recover. Second, if the initial SOC value was set far from the true SOC, the EKF converged very slowly, causing large transient errors. Third, during abrupt changes in the system state, such as a sudden doubling of the discharge current, the first-order linearization became inaccurate and the SOC estimation error increased. These findings motivated me to develop an enhanced algorithm with stronger robustness and faster convergence.
5. Development of the CSTEKF Algorithm
5.1 Strong Tracking Extended Kalman Filter
The Strong Tracking Extended Kalman Filter (STEKF) improves the tracking ability of the EKF when the system state changes suddenly. The key idea is to introduce a time-varying fading factor \(\lambda_k\) that adjusts the predicted error covariance matrix. When the state estimate deviates strongly from the actual state, the residual sequence becomes non-Gaussian and the orthogonality condition is violated. The fading factor is designed to force the residual sequence to remain orthogonal so that the filter can extract more information from the latest measurements.
The residual is defined as
\[
r_k = y_k – g(\hat{x}_k^-, u_k).
\]
Its covariance matrix can be recursively estimated as
\[
E_k =
\begin{cases}
r_1 r_1^T, & k=1, \\
\dfrac{\rho E_{k-1} + r_k r_k^T}{1+\rho}, & k>1,
\end{cases}
\]
where \(\rho\) is a forgetting factor between 0 and 1. Then I calculate
\[
N_k = E_k – \beta R_k – C_k Q_{k-1} C_k^T,
\]
\[
M_k = C_k A_{k-1} P_{k-1} A_{k-1}^T C_k^T,
\]
where \(\beta\) is a weakening factor greater than or equal to 1. The fading factor is obtained by
\[
\lambda_k =
\begin{cases}
\dfrac{\operatorname{tr}(N_k)}{\operatorname{tr}(M_k)}, & \text{if this ratio } \ge 1, \\
1, & \text{otherwise}.
\end{cases}
\]
The predicted covariance matrix is then modified to
\[
P_k^- = \lambda_k A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1}.
\]
With this modified \(P_k^-\), the Kalman gain becomes
\[
L_k = \frac{P_k^- C_k^T}{C_k P_k^- C_k^T + R_k}.
\]
This strong tracking mechanism makes the filter sensitive to abrupt changes in the traction battery state and helps the filter recover quickly from inaccurate initial values. However, the fading factor computed in this way is not necessarily optimal. Therefore, I further refined the update process using a covariance modification strategy.
5.2 Covariance Modification
In the nonlinear battery model, the observation matrix \(C_k\) is obtained by evaluating the derivative of the OCV-SOC function at the prior state estimate. If this prior estimate is not accurate, the resulting \(C_k\) may be far from the true observation matrix. The standard covariance update equation of the EKF assumes that the orthogonality condition \(C_k P_k^- = 0\) holds, but for a nonlinear system this equality is usually violated. To solve this problem, I use the posterior state estimate \(\hat{x}_k\) to recompute the observation matrix as
\[
\tilde{C}_k = \left. \frac{\partial g(x,u)}{\partial x} \right|_{x=\hat{x}_k}.
\]
Then a modified Kalman gain is computed using
\[
\tilde{L}_k = \frac{P_k \tilde{C}_k^T}{\tilde{C}_k P_k \tilde{C}_k^T + R_k}.
\]
The final state estimate and covariance matrix are then updated by
\[
\tilde{x}_k = \hat{x}_k^- + \tilde{L}_k r_k,
\]
\[
\tilde{P}_k = \left(I – \tilde{L}_k \tilde{C}_k\right) P_k \left(I – \tilde{L}_k \tilde{C}_k\right)^T + \tilde{L}_k R_k \tilde{L}_k^T.
\]
This latter form of covariance update, often called the Joseph form, helps maintain the symmetry and positive definiteness of the covariance matrix. By applying the corrected observation matrix and the corrected gain, the filter becomes more robust against model uncertainties and large measurement errors.
5.3 Complete CSTEKF Algorithm
I now integrate the strong tracking mechanism and the covariance modification into a single filter that I refer to as the Corrected Covariance Strong Tracking Extended Kalman Filter (CSTEKF). The complete algorithm for estimating the SOC of a lithium-ion traction battery consists of the following steps:
- Evaluate the prior state estimate:
\[
\hat{x}_k^- = f(\hat{x}_{k-1}, u_{k-1}).
\]
- Compute the residual:
\[
r_k = y_k – g(\hat{x}_k^-, u_k).
\]
- Compute the fading factor \(\lambda_k\) using the strong tracking equations:
\[
E_k = \frac{\rho E_{k-1} + r_k r_k^T}{1+\rho}, \quad
E_1 = r_1 r_1^T,
\]
\[
\lambda_k =
\begin{cases}
\dfrac{\operatorname{tr}(E_k – \beta R_k – C_k Q_k C_k^T)}{\operatorname{tr}(C_k A_{k-1} P_{k-1} A_{k-1}^T C_k^T)}, & \text{if } \lambda_k \ge 1, \\
1, & \text{if } \lambda_k < 1.
\end{cases}
\]
- Update the prior covariance matrix:
\[
P_k^- = \lambda_k A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1}.
\]
- Compute the initial Kalman gain:
\[
L_k = \frac{P_k^- C_k^T}{C_k P_k^- C_k^T + R_k}.
\]
- Compute the first posterior state estimate and covariance:
\[
\hat{x}_k = \hat{x}_k^- + L_k r_k,
\]
\[
P_k = (I – L_k C_k) P_k^-.
\]
- Recompute the observation matrix at the first posterior estimate:
\[
\tilde{C}_k = \left. \frac{\partial g}{\partial x} \right|_{x=\hat{x}_k}.
\]
- Compute the corrected Kalman gain:
\[
\tilde{L}_k = \frac{P_k \tilde{C}_k^T}{\tilde{C}_k P_k \tilde{C}_k^T + R_k}.
\]
- Compute the final corrected state estimate and covariance matrix:
\[
\tilde{x}_k = \hat{x}_k^- + \tilde{L}_k r_k,
\]
\[
\tilde{P}_k = (I – \tilde{L}_k \tilde{C}_k) P_k (I – \tilde{L}_k \tilde{C}_k)^T + \tilde{L}_k R_k \tilde{L}_k^T.
\]
In step 8, the corrected gain \(\tilde{L}_k\) replaces the original gain \(L_k\), and in step 9 the Joseph-type update guarantees that the covariance remains symmetric and non-negative. The proposed CSTEKF inherits the strong tracking property of the STEKF while simultaneously benefiting from the refined covariance modification, which is very useful when the traction battery is operated under highly dynamic conditions.
6. Simulation Results and Discussion
To verify the performance of the CSTEKF algorithm, I constructed a simulation framework in MATLAB/Simulink. The traction battery was configured with a nominal capacity of \(C_N = 4.9\) Ah, and it was discharged intermittently at a current of 4 A. The true SOC was generated by the ampere-hour integration method. The measurement signals of current and voltage were corrupted by additive noises. For all filters, the process noise covariance matrix was initialized as \(Q_0 = \mathrm{diag}(0.001, 0.001, 0.001)\), and the measurement noise covariance was \(R_0 = 1\). For the STEKF and CSTEKF, I set the weakening factor \(\beta = 1.2\) and the forgetting factor \(\rho = 0.9\).
6.1 Normal Initial State
First, I tested the filters with a relatively small initial error. The true SOC was initialized at 0.9, while the filters started with \(x_0 = \begin{bmatrix} 0.8 & 0 & 0 \end{bmatrix}^T\). Figure 2 shows the SOC tracking results, and Fig. 3 shows the corresponding estimation errors. All three filters eventually converged to the true SOC. However, the EKF had the largest overshoot and the slowest initial convergence. The STEKF performed better, but the CSTEKF produced the fastest convergence and the smallest steady-state error. The strong tracking mechanism enabled the filter to quickly correct the initial offset, while the covariance modification further reduced the estimation variance.
At around 3400 seconds, a strong noise impulse was added to the voltage measurement. I observed that the conventional EKF was severely disturbed by this impulse; its SOC estimate jumped away from the true value and took a long time to come back. The STEKF was more resilient, but it still experienced a noticeable temporary error. The CSTEKF, with its corrected covariance update, showed the strongest immunity to the measurement noise. The SOC estimate remained very close to the true value throughout the noise event, demonstrating the practical advantage of the proposed algorithm for a traction battery management system.
6.2 Abrupt State Change
In the second test, I deliberately doubled the discharge current for a short duration between 2000 s and 2200 s. This represents a sudden load change that a traction battery may encounter during aggressive acceleration or hill climbing. Under such conditions, the internal polarization states change rapidly, and the first-order linearization in the EKF is no longer accurate.
The simulation results show that the EKF struggled to track the SOC because the innovation residual became large and the filter was unable to adjust its gain quickly enough. The STEKF responded faster because the fading factor increased the weight of the latest measurement. The CSTEKF showed an even better response, as the corrected covariance matrix allowed the gain to be adjusted more precisely. The SOC estimation error of the CSTEKF during the abrupt change was significantly lower than that of the other two filters. After the current returned to its normal level, the CSTEKF also returned to the true SOC faster and with less overshoot.
6.3 Large Initial Error
A critical challenge in SOC estimation is that the initial SOC of a traction battery is often unknown. For example, after a long parking period or after an incomplete charging event, the user may have no reliable information about the initial charge state. In the third simulation, I set the true initial SOC to 0.9 but initialized all filters with \(x_0 = \begin{bmatrix} 0.1 & 0 & 0 \end{bmatrix}^T\). The results are shown in Table 4 and Table 5.
| Initial state | Algorithm | MAE | MRE | RMSE |
|---|---|---|---|---|
| \(x_0=[0.8,0,0]\) | EKF | 0.012679 | 0.049104 | 0.018340 |
| STEKF | 0.006487 | 0.028341 | 0.009317 | |
| CSTEKF | 0.003634 | 0.015256 | 0.005175 |
| Initial state | Algorithm | MAE | MRE | RMSE |
|---|---|---|---|---|
| \(x_0=[0.1,0,0]\) | EKF | 0.029589 | 0.068345 | 0.086876 |
| STEKF | 0.016489 | 0.039685 | 0.069241 | |
| CSTEKF | 0.011672 | 0.024413 | 0.052004 |
The CSTEKF algorithm achieved the lowest mean absolute error, mean relative error, and root mean square error in both cases. In the large initial error scenario, the EKF needed more than 130 seconds to converge, while the STEKF converged in about 52 seconds and the CSTEKF converged in about 40 seconds. This indicates that the proposed filter can greatly reduce the adverse effect of an inaccurate initial SOC, which is a considerable advantage for practical traction battery applications where the initial state is usually unknown.
7. Comparison of Algorithm Complexity and Suitability
An important issue for practical implementation is the computational burden of the algorithm. The CSTEKF requires one extra evaluation of the observation Jacobian matrix and one additional gain update compared with the STEKF. Since the state dimension is only three, this extra cost is very small. The COTSEKF does not need to solve any numerical optimization or matrix inversion beyond the standard EKF operations. Therefore, it can be easily embedded in a battery management system microcontroller. Table 6 summarizes the main features of the three algorithms that I tested for the traction battery SOC estimation.
| Algorithm | Convergence speed | Robustness to noise | Robustness to state change | Computational cost |
|---|---|---|---|---|
| EKF | Slow under initial error | Poor | Poor | Lowest |
| STEKF | Fast | Good | Good | Moderate |
| CSTEKF | Fastest | Excellent | Excellent | Moderate |
From my simulations, I can conclude that the CSTEKF provides the best estimation performance for the SOC of a lithium-ion traction battery. The improvement is especially noticeable when the battery operates under noisy measurement conditions, when the initial SOC is uncertain, and when the current profile changes abruptly. These are exactly the conditions that occur frequently in real electric vehicles, where electromagnetic interference affects voltage sensors, the rest time changes the OCV, and the driver’s power demand varies continuously.
8. Conclusion
In this work, I have presented a systematic study on the SOC estimation of a lithium-ion traction battery using an improved strong tracking filter with covariance correction. I first analyzed the fundamental electrochemical characteristics of the traction battery, including voltage, internal resistance, and capacity. I then established a second-order RC equivalent circuit model that accurately describes the battery dynamics while remaining computationally efficient. Using HPPC test results, I identified all model parameters and constructed the OCV-SOC relationship with a seventh-order polynomial.
To overcome the weaknesses of the standard EKF, I proposed the CSTEKF algorithm that integrates a time-varying fading factor into the prediction step and a covariance correction stage after the measurement update. The fading factor allows the filter to be highly responsive to sudden changes in the system state, while the covariance correction improves the quality of the gain matrix using the latest posterior state estimate. The algorithm is easy to implement in a battery management system because it only requires a few additional matrix operations compared with the EKF.
Extensive simulation tests have shown that the CSTEKF outperforms the EKF and the STEKF regarding convergence speed, accuracy, and robustness. The mean absolute error and root mean square error for the proposed algorithm were significantly lower in all test cases. In particular, when the initial SOC of the traction battery was far from the true value, the CSTEKF converged much faster than the other filters and suppressed the initial peak error. When a strong noise disturbance was present, the CSTEKF maintained a stable SOC estimate, whereas the EKF could be temporarily dragged away from the true value. When the discharge current was suddenly doubled, the CSTEKF still tracked the SOC with high accuracy.
These results strongly suggest that the CSTEKF is an excellent candidate for real-time SOC estimation of lithium-ion traction batteries in electric vehicles. The future extension of this work could consider the simultaneous estimation of SOC and state of health using multi-time-scale filtering, as well as the online adaptation of the noise covariances under varying temperature conditions. Moreover, the proposed algorithm could be tested on experimental platforms with real battery controllers to further validate its performance in real-world electromagnetic environments.
