As a core energy storage component of electric vehicles, the lithium-ion high-voltage battery requires real-time and accurate estimation of its state of charge (SOC) so that the battery management system can perform effective monitoring, optimal energy allocation, and safety warnings. The high-voltage battery exhibits strongly nonlinear characteristics because its SOC is affected by the coupling of multiple factors. In my research, I first investigated the working principle and electrical characteristics of lithium-ion batteries, including voltage characteristics, internal resistance characteristics, and capacity characteristics. To further explore how internal parameters affect SOC estimation, I designed charge-discharge experiments for the high-voltage battery and revealed the relationships between battery capacity and temperature, aging degree, and discharge rate. Furthermore, I compared electro-chemical models, neural network models, and equivalent circuit models, and selected a second-order RC equivalent circuit model to represent the high-voltage battery because it provides good accuracy while maintaining a small computational burden. I then carried out hybrid pulse power characteristic tests to collect data and identify the model parameters. After fitting the relationship between SOC and open-circuit voltage, I proposed a corrected covariance strong tracking extended Kalman filter (CSTEKF) for high-voltage battery SOC estimation. The proposed algorithm integrates the strong tracking filter with a covariance correction technique, aiming to overcome the performance bottlenecks of the extended Kalman filter under dynamic operating conditions and noisy environments. The simulation results indicate that CSTEKF can effectively suppress the impact of inaccurate SOC initialization, and it significantly improves estimation accuracy compared with EKF and strong tracking EKF.
The demand for clean transportation drives the rapid development of electric vehicles. In the traditional internal combustion engine, fossil fuel combustion releases pollutants such as hydrocarbons, nitrogen oxides, and carbon monoxide, which also contain a large amount of carbon dioxide. By contrast, electric vehicles mainly rely on high-voltage battery packs and produce almost no tailpipe emissions. This not only reduces dependence on non-renewable resources but also improves air quality. However, high-voltage battery cost, charging infrastructure, and energy density remain important challenges. The design of a reliable battery management system relies on accurate SOC estimation because SOC is the key indicator that tells the user how much energy remains in the high-voltage battery and whether charging is required. Accurate SOC estimation helps optimize charge and discharge control, extend battery life, improve energy efficiency, and enable effective safety protection.
During my graduate work, I studied the state-of-charge estimation of a lithium-ion high-voltage battery. I first reviewed the commonly used SOC estimation methods. The ampere-hour integration method integrates the measured current and requires an accurate initial SOC. In practice, current sensor errors and initial-state errors accumulate, causing progressively larger estimation error. The discharge experiment can obtain a reference value but it requires disconnecting the high-voltage battery from the vehicle and fully discharging it, so it is unsuitable for real-time monitoring. The alternating-current impedance method relies on the relationship between impedance and SOC but the impedance behavior depends heavily on frequency, temperature, and SOC interval. The open-circuit voltage method is straightforward in static conditions, yet relaxing voltage after polarization requires a long rest and dynamic driving makes voltage measurements unavailable. The neural network method has strong nonlinear fitting ability but requires massive training data and is difficult to interpret. Kalman filter based methods provide a recursive optimal solution, but the nonlinearity of the high-voltage battery prevents direct application of the linear Kalman filter. The extended Kalman filter (EKF) linearizes the nonlinear system through a first-order Taylor expansion and has become a popular SOC estimation approach. Nevertheless, EKF suffers from several drawbacks. When the high-voltage battery internal state changes rapidly or the measurement noise is strong, EKF estimation accuracy deteriorates. The performance of EKF is also sensitive to the initial state value. Since the initial SOC of a high-voltage battery is generally difficult to obtain precisely, a poor initial state can result in a long convergence time. To solve these limitations, I proposed a modified algorithm named CSTEKF and compared it with EKF and strong tracking extended Kalman filter (STEKF) in a simulated intermittent discharge condition.

The high-voltage battery stores electric energy through a reversible intercalation and deintercalation process of lithium ions between the positive and negative electrodes. A lithium-metal oxide is used as the positive electrode and graphite as the negative electrode. In the charging process, lithium ions move from the positive electrode through the electrolyte and separator to the negative electrode, while electrons travel through the external circuit to the negative electrode. In the discharge process, the reverse reaction occurs. Taking the lithium iron phosphate battery as an example, the electrode reactions can be expressed as:
$$ \text{Positive: } \mathrm{LiFePO_4} \rightleftharpoons \mathrm{Li_{1-x}FePO_4} + x\mathrm{Li^+} + x e^- $$
$$ \text{Negative: } x\mathrm{Li^+} + x e^- + 6\mathrm{C} \rightleftharpoons \mathrm{Li_xC_6} $$
$$ \text{Overall: } \mathrm{LiFePO_4} + 6x\mathrm{C} \rightleftharpoons \mathrm{Li_{1-x}FePO_4} + \mathrm{Li_xC_6} $$
The high-voltage battery has three major characteristics that strongly influence SOC estimation. The voltage characteristic includes the open-circuit voltage, working voltage, and voltage plateau. The open-circuit voltage is determined by temperature, discharge rate, and SOC. During charge or discharge, polarization causes the terminal voltage to deviate from the open-circuit voltage. The internal resistance of the high-voltage battery consists of ohmic resistance, polarization resistance, and contact resistance. It depends on temperature, SOC, current, and aging. When the SOC is low, the charge transfer resistance rises. At low temperatures, the electrolyte viscosity increases and the internal resistance becomes much larger. As the high-voltage battery ages, the solid-electrolyte interphase grows and the internal resistance increases. The capacity of the high-voltage battery is described by theoretical capacity, rated capacity, and actual capacity. The actual capacity is significantly affected by temperature, discharge rate, and cycle number. These factors jointly create nonlinear behavior and make SOC estimation a challenging task.
SOC is defined as the ratio of the remaining capacity to the nominal capacity of the high-voltage battery. In my work, I used the following expression:
$$ \mathrm{SOC}(t) = \frac{Q_t}{Q_N} \times 100\% $$
$$ \mathrm{SOC}(t) = \left( \frac{Q_0 – \int_{0}^{t} \eta I(\tau) \, d\tau }{Q_N} \right) \times 100\% $$
where \(Q_t\) is the remaining capacity at time \(t\), \(Q_N\) is the rated capacity under the standard condition, \(I(\tau)\) is the current at time \(\tau\), and \(\eta\) is the columbic efficiency.
To analyze the effect of temperature on the high-voltage battery, I performed a constant-current discharge experiment on a 72 Ah battery at temperatures from -20°C to 55°C. The battery was placed in a thermostat for 2 h and then discharged at a 1 C rate until the cutoff voltage. Table 1 shows measured capacities at representative temperatures.
| Temperature (°C) | Actual capacity (Ah) |
|---|---|
| -20 | 63 |
| -10 | 66 |
| 0 | 68 |
| 15 | 71 |
| 25 | 72 |
| 55 | 72 |
The capacity degradation is prominent in the low-temperature region, especially below 0°C, because the electrolyte conductivity decreases and the charge-transfer resistance increases at low temperatures. Open-circuit voltage also changes with temperature. At the same remaining capacity, the high-voltage battery shows a higher open-circuit voltage and a flatter voltage curve when the temperature is increased. At low temperatures, the voltage drops much faster, implying that the available capacity is reduced and SOC estimation based only on voltage becomes unreliable without temperature compensation.
Aging is another key factor that affects SOC estimation of the high-voltage battery. I took a commercial cell with a nominal capacity of 2.5 Ah and performed 1 C charge-discharge cycles in a temperature-controlled chamber. The cell was charged with a constant current of 2.5 A to 4.2 V and then with a constant voltage until the current fell below 0.05 C. After a 5 min rest, the cell was discharged at 1 C to 2.8 V. The capacity retention after different cycles is listed in Table 2.
| Cycle number | Capacity retention (%) |
|---|---|
| 50 | 99.4 |
| 100 | 98.7 |
| 150 | 98.0 |
| 200 | 97.0 |
Because the SOC calculation uses the current maximum available capacity, the actual capacity continuously changes as the high-voltage battery ages. If the nominal capacity is used without considering capacity fade, the SOC estimate contains a slowly increasing error. A robust SOC estimator must therefore account for battery aging or jointly estimate the state of health.
The discharge rate influences the deliverable capacity and the terminal voltage. Using the 72 Ah high-voltage battery, I performed discharge tests at rates from 0.3 C to 5 C, as summarized in Table 3.
| Discharge rate | Typical behavior of terminal voltage |
|---|---|
| 0.3 C | Voltage remains high for a long time and drops moderately at the end |
| 0.5 C | Voltage shows a slight decrease compared to 0.3 C |
| 1 C | Voltage decreases more quickly in the middle SOC range |
| 2 C | Voltage drop becomes more obvious |
| 3 C | High current causes severe polarization |
| 5 C | Voltage drops sharply, especially near the end of discharge |
High-rate discharge intensifies concentration polarization and ohmic polarization, which reduces energy efficiency. When the high-voltage battery operates below 1.5 C, the effect of discharge rate on the usable capacity is relatively small. Therefore, in many practical SOC estimation algorithms, the discharge rate is incorporated through an efficiency factor or through a dynamic model.
The accurate SOC estimation of a high-voltage battery depends on an appropriate equivalent model. I reviewed several model families. The electrochemical model describes internal ion transport and reactions, but its complex partial differential equations are too heavy for real-time applications. The neural network model can be trained to approximate input-output relations, but its accuracy is strongly tied to the amount and quality of data. Equivalent circuit models provide a balanced trade-off between accuracy and computational load. The Rint model is simple but cannot represent polarization. The Thevenin model uses one RC network to describe polarization. The PNGV model adds a capacitor to account for the time-varying open-circuit voltage, but long-term simulation can accumulate errors. The GNL model introduces self-discharge and multiple time-constant RC networks, improving accuracy while greatly increasing difficulty of parameter identification. To describe both electrochemical polarization and concentration polarization with acceptable complexity, I selected the second-order RC equivalent circuit, which is shown in the model equations below.
$$ \begin{cases} U_T = U_{OCV} – U_1 – U_2 – I_T R_0 \\[4pt] U_1 = I_T R_1 – C_1 R_1 \frac{dU_1}{dt} \\[4pt] U_2 = I_T R_2 – C_2 R_2 \frac{dU_2}{dt} \end{cases} $$
The current integration for SOC is written as:
$$ \mathrm{SOC}_t = \mathrm{SOC}_0 – \frac{\int_0^t \eta I(\tau) d\tau}{C_N} $$
where \(R_0\) is the ohmic resistance, \(R_1\) and \(C_1\) describe the fast electrochemical polarization, \(R_2\) and \(C_2\) describe the slow concentration polarization, \(U_1\) and \(U_2\) are the voltages across the two RC networks, \(U_T\) is the terminal voltage, \(U_{OCV}\) is the open-circuit voltage, and \(I_T\) is the total current. The state-space representation is:
$$ \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_N} \end{bmatrix} I_T $$
$$ U_T = \begin{bmatrix} 1 & -1 & -1 \end{bmatrix} \begin{bmatrix} U_{OCV} \\ U_1 \\ U_2 \end{bmatrix} – I_T R_0 $$
I conducted HPPC experiments to obtain dynamic voltage responses at different SOC points. The test was performed in a 25 ± 1 °C environment. I charged the high-voltage battery with a 1 C constant current to 4.2 V, then kept the voltage at 4.2 V until the current dropped below 0.05 C. After a 2 h rest, the battery was discharged at 1 C for 180 s and rested for another 2 h. This pulse sequence was repeated until the cutoff voltage of 2.7 V. The recorded voltage trajectory allowed me to determine the ohmic resistance and RC parameters for each SOC level.
The open-circuit voltage (OCV) of the high-voltage battery was measured after each rest period. The measured OCV-SOC data points are listed in Table 4.
| SOC | OCV (V) |
|---|---|
| 0.1 | 3.328 |
| 0.2 | 3.416 |
| 0.3 | 3.462 |
| 0.4 | 3.498 |
| 0.5 | 3.539 |
| 0.6 | 3.603 |
| 0.7 | 3.705 |
| 0.8 | 3.812 |
| 0.9 | 4.033 |
| 1.0 | 4.189 |
I fitted the data with a seventh-order polynomial because this order provided a good trade-off between accuracy and complexity:
$$ V_{ocv}(SOC) = 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 $$
The high-voltage battery model parameters were identified from the pulse voltage response. A single discharge pulse can be divided into several regions. The instantaneous voltage drop in region A-B is caused by ohmic resistance, and the slow transition in region B-C is due to the two RC polarization networks. After current interruption, the voltage rises instantly by the ohmic part, and then gradually recovers. The ohmic resistance is obtained by:
$$ R_0 = \frac{(V_A – V_B) + (V_D – V_C)}{2I} $$
For the RC parameters, I used an exponential fitting of the recovery region D-E. The zero-input response is:
$$ V_0 = V_{OC} – V_{10}e^{-t/(R_1 C_1)} – V_{20}e^{-t/(R_2 C_2)} $$
By fitting the experimental voltage transient, I obtained the time constants \(\tau_1 = R_1 C_1\) and \(\tau_2 = R_2 C_2\). Then, using the zero-state response during the polarization build-up stage, I solved for all resistance and capacitance values. The identified parameters at several SOC points are collected in Table 5.
| 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.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 | 31.1 | 6.1 | 935.51 | 321.05 |
| 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 |
The identified parameters show that the ohmic resistance generally rises when SOC decreases. The first RC network, which represents concentration polarization, has a larger time constant under most SOC values. This is consistent with the physical understanding that lithium-ion diffusion is the dominant slow dynamic process in the high-voltage battery.
I validated the model by applying the identified parameters in a simulation of the complete voltage response under a dynamic current profile. The comparison between the model output voltage and the measured terminal voltage showed that the voltage error remained within ±0.05 V during the entire test. This result confirmed that the second-order RC equivalent circuit can adequately reproduce the dynamic behavior of the high-voltage battery.
After building the high-voltage battery model, I focused on the state estimation algorithm. The EKF is widely used for nonlinear SOC estimation. A general nonlinear discrete-time system can be written as:
$$ \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 \sim N(0,Q_k)\) is the process noise, \(v_k \sim N(0,R_k)\) is the measurement noise. EKF linearizes the state function and the measurement function around the current estimate:
$$ A_k = \left. \frac{\partial f}{\partial x} \right|_{\hat{x}_k}, \quad C_k = \left. \frac{\partial g}{\partial x} \right|_{\hat{x}_k} $$
The EKF recursion is:
$$ \hat{x}_k^- = f(\hat{x}_{k-1}, u_{k-1}) $$
$$ P_k^- = A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1} $$
$$ K_k = P_k^- C_k^T \left( C_k P_k^- C_k^T + R_k \right)^{-1} $$
$$ \hat{x}_k = \hat{x}_k^- + K_k \left( z_k – g(\hat{x}_k^-, u_k) \right) $$
$$ P_k = \left( I – K_k C_k \right) P_k^- $$
In the discrete model of the high-voltage battery, the state vector is selected as \(x = [SOC,\, U_1,\, U_2]^T\). The system matrices after linearization are:
$$ 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} $$
$$ 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} $$
$$ C_k = \begin{bmatrix} \frac{\partial V_{ocv}(SOC)}{\partial SOC} & -1 & -1 \end{bmatrix} $$
I built an EKF-based SOC estimator in MATLAB/Simulink for a 4.9 Ah high-voltage battery under an intermittent discharge current of 4 A. The true SOC was initialized at 0.9 and the initial state in the filter was set to 0.8. The covariance matrices were chosen as \(Q = \mathrm{diag}(0.001,0.001,0.001)\), \(R = 1\), and the initial error covariance as \(P_0 = I_3\). The simulation showed that EKF could converge to the true SOC gradually, but its convergence was slow and it was vulnerable to strong measurement noise disturbance.
To solve these shortcomings, I developed the CSTEKF. The strong tracking filter component introduces a time-varying fading factor \(\lambda_k\) to adjust the predicted covariance. When the residual becomes large, \(\lambda_k\) reduces the influence of past data and forces the filter to track sudden state changes. The residual is defined as:
$$ r_k = z_k – g(\hat{x}_k^-, u_k) $$
Its covariance is estimated recursively:
$$ E_k = \begin{cases} r_1 r_1^T, \quad k=1 \\[4pt] \frac{\rho E_{k-1} + r_k r_k^T}{1+\rho}, \quad k>1 \end{cases} $$
where \(\rho\) is a forgetting factor. The fading factor is computed from:
$$ \lambda_k = \begin{cases} e_k, & e_k \ge 1 \\ 1, & e_k < 1 \end{cases} $$
$$ e_k = \frac{\mathrm{tr}\left( E_k – \beta R_k – C_k Q_{k-1} C_k^T \right)}{\mathrm{tr}\left( C_k A_{k-1} P_{k-1} A_{k-1}^T C_k^T \right)} $$
Then the predicted covariance is modified:
$$ P_k^- = \lambda_k A_{k-1} P_{k-1} A_{k-1}^T + Q_{k-1} $$
The covariance correction technique further optimizes the posterior estimate. Because the measurement equation of the high-voltage battery is nonlinear and approximated by a polynomial, the linearized output matrix is not exact. The correction uses the updated state estimate to recalculate the output matrix:
$$ \tilde{C}_k = \left. \frac{\partial g}{\partial x} \right|_{x=\hat{x}_k} $$
$$ \tilde{K}_k = \frac{P_k \tilde{C}_k^T}{\tilde{C}_k P_k \tilde{C}_k^T + R_k} $$
$$ \tilde{x}_k = \hat{x}_k^- + \tilde{K}_k r_k $$
$$ \tilde{P}_k = \left( I – \tilde{K}_k \tilde{C}_k \right) P_k \left( I – \tilde{K}_k \tilde{C}_k \right)^T + \tilde{K}_k R_k \tilde{K}_k^T $$
The complete CSTEKF recursion can be summarized as:
Step 1: Compute the prior state estimate and residual.
$$ \hat{x}_k^- = f(\hat{x}_{k-1}, u_{k-1}), \qquad r_k = z_k – g(\hat{x}_k^-, u_k) $$
Step 2: Calculate the fading factor \(\lambda_k\) using the residual covariance.
Step 3: Compute the prior covariance \(P_k^-\).
Step 4: Compute the standard Kalman gain.
$$ L_k = \frac{P_k^- C_k^T}{C_k P_k^- C_k^T + R_k} $$
Step 5: Update the state and covariance.
$$ \hat{x}_k = \hat{x}_k^- + L_k r_k, \qquad P_k = \left( I – L_k C_k \right) P_k^- $$
Step 6: Recalculate the output matrix using the posterior state.
Step 7: Correct the Kalman gain and obtain the final refined estimates.
I applied the CSTEKF to the same intermittent discharge problem. The simulation configuration was identical to the EKF test so that a fair comparison could be made. Table 6 lists the evaluated criteria used in my experiment.
| Criterion | Formula |
|---|---|
| MAE | \(\frac{1}{N}\sum_{k=1}^{N} |SOC_k – \hat{SOC}_k|\) |
| MRE | \(\frac{1}{N}\sum_{k=1}^{N} \left|\frac{SOC_k – \hat{SOC}_k}{SOC_k}\right|\) |
| RMSE | \(\sqrt{\frac{1}{N}\sum_{k=1}^{N} (SOC_k – \hat{SOC}_k)^2}\) |
In the first simulation, the initial state for all filters was \(x_0 = [0.8,0,0]^T\). The true SOC started at 0.9. Table 7 compares the three algorithms.
| 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 |
The CSTEKF achieved the smallest errors among the three methods. When I intentionally caused a strong measurement noise disturbance around time 3400 s, EKF deviated significantly and required a long time to recover. In contrast, the strong tracking filters recovered much faster, and the CSTEKF showed the best noise immunity and returned to the true value almost immediately.
To check the capability of responding to a rapidly changing high-voltage battery state, I doubled the discharge current between 2000 s and 2200 s. The CSTEKF tracked this sudden dynamic change with substantially less overshoot and lag than the EKF and slightly better accuracy than the STEKF. This outcome demonstrates that the fading factor in the CSTEKF is helpful when the actual operating point of the high-voltage battery moves over a wide range.
I further examined the initial-state sensitivity. In this test, the filter initial SOC was set to 0.1 while the true value was 0.9. Table 8 presents the performance indicators.
| 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 |
The convergence times also differed. CSTEKF reached the neighborhood of the true SOC after roughly 40 s, STEKF after about 52 s, and EKF after about 130 s. This test verifies that CSTEKF is much less sensitive to an incorrect initial SOC value, which is an attractive property because the initial SOC of a high-voltage battery in an electric vehicle is often unknown after a deep discharge or an unexpected shutdown.
In summary, I have systematically studied the critical issue of SOC estimation for a lithium-ion high-voltage battery. The main contributions of my work are as follows. First, I analyzed the influence of temperature, aging, and discharge rate on the high-voltage battery capacity and provided experimental evidence. Second, I established an accurate second-order RC equivalent circuit model with offline parameter identification based on HPPC data. Third, I developed the CSTEKF algorithm that combines a strong tracking mechanism with a covariance correction technique. The proposed algorithm gives more reliable SOC estimates under strong noise, rapid state changes, and uncertain initial conditions. Reliable SOC estimation of the high-voltage battery is essential for safe and efficient operation of electric vehicles, and I believe the CSTEKF offers a promising solution for future battery management systems.
