SOC Estimation for EV Battery Pack Based on Kalman Filtering

In this dissertation, I focus on the real-time and accurate state-of-charge estimation of an EV battery pack. The battery pack used in this study is built from lithium iron phosphate cells, which are widely considered as a promising energy source for electric vehicles. I propose a Kalman filtering correction algorithm that combines the open-circuit voltage method, the ampere-hour counting method, and the extended Kalman filter. The proposed method is implemented in a dedicated hardware and software system, and its performance is validated under several standard automotive driving cycles. The results show that the proposed method can estimate the EV battery pack SOC with an error of less than 5% in most operating conditions, which satisfies the practical requirements of electric vehicle battery management systems.

Keywords: EV battery pack, state of charge, extended Kalman filter, ampere-hour counting, open-circuit voltage, battery management system.

1. Introduction

The global automotive industry is facing two major challenges: the shortage of petroleum resources and the degradation of air quality. Electric vehicles have therefore become an important direction for future transportation. Compared with conventional internal combustion engine vehicles, electric vehicles produce less tailpipe emission and can utilize electrical energy from renewable sources. In an electric vehicle, the EV battery pack is the primary energy storage device. It must provide high energy density, high power density, long cycle life, and excellent safety. Among all battery management functions, the accurate estimation of the state of charge of the EV battery pack is one of the most critical tasks.

SOC is defined as the remaining capacity of a battery divided by its nominal capacity. It is not directly measurable and must be inferred from measurable signals such as terminal voltage, charge or discharge current, and surface temperature. The operating conditions of an EV battery pack are highly dynamic. Sudden acceleration and regenerative braking cause large current variations, and the ambient temperature changes from very cold to very hot. These factors make SOC estimation a challenging problem. A reliable SOC estimation algorithm must be accurate, real-time, and robust to noise and model uncertainty.

Many SOC estimation methods have been proposed in the literature. The discharge test method is accurate but offline. The open-circuit voltage method requires a long rest period. The ampere-hour counting method is simple but suffers from accumulated current integration error. The internal resistance method is sensitive to measurement noise. The neural network method requires a large amount of training data. In this work, I address these limitations by introducing a Kalman filtering correction algorithm. The algorithm makes full use of the advantages of several classical methods and provides a practical solution for online EV battery pack SOC estimation.

Battery type Specific energy (Wh/kg) Energy density (Wh/L) Specific power (W/kg) Cycle life Self-discharge per month Memory effect
Lead-acid 30-45 60-90 200-300 400-600 <5% None
Nickel-cadmium 40-60 80-110 150-350 600-1200 15-30% Large
Nickel-metal hydride 60-70 130-170 150-300 600-1200 25-35% Small
Lithium-ion 90-130 140-200 250-450 800-1200 2-5% None

The EV battery pack considered in this study is a series string of four lithium iron phosphate polymer cells. Each cell has a nominal voltage of 3.2 V and a nominal capacity of 15 Ah. The total nominal voltage of the EV battery pack is 12.8 V. I use this pack to develop and test the SOC estimation system because it closely represents the behavior of a larger traction battery while remaining easy to handle in a laboratory environment.

2. Characteristics of Lithium Iron Phosphate Batteries

Lithium iron phosphate, LiFePO4, has an ordered olivine structure. The lattice consists of FeO6 octahedra, LiO6 octahedra, and PO4 tetrahedra. This structure provides excellent thermal and chemical stability. During charging, lithium ions are extracted from the positive electrode and inserted into the graphite negative electrode. During discharging, the lithium ions move in the opposite direction. The electrochemical reactions for the LiFePO4 electrode can be expressed as:

During charge:
$$ \text{LiFePO}_4 – x\text{Li}^+ – x e^- \rightarrow x\text{FePO}_4 + (1-x)\text{LiFePO}_4 $$

During discharge:
$$ \text{FePO}_4 + x\text{Li}^+ + x e^- \rightarrow x\text{LiFePO}_4 + (1-x)\text{FePO}_4 $$

The lithium-ion concentration difference between the positive and negative electrodes creates a voltage across the cell. Because the host materials do not undergo major structural changes during normal operation, LiFePO4 batteries have a relatively long cycle life and good safety characteristics. The following table compares LiFePO4 with other lithium-ion cathode materials.

Cathode material Specific capacity (mAh/g) Nominal potential (V) Diffusion coefficient (cm²/s) Safety Cycle performance
LiCoO2 140-160 3.7 2.6e-8 Poor Good
LiNi0.8Co0.2Al0.05O2 170-200 3.6 1e-12 to 1e-11 Poor Good
LiMn2O4 110-120 3.8 1e-9 Good Fair
LiNi1/3Co1/3Mn1/3O2 150-220 3.6-3.9 1e-12 Fairly good Good
LiFePO4 160-170 3.3 1.8e-14 Good Good

2.1 Important Battery Parameters

Several important parameters describe the behavior of a LiFePO4 battery. The theoretical capacity is calculated from Faraday’s law based on the amount of active material. The nominal capacity is the maximum charge that can be delivered under a specified low-rate discharge at room temperature. The actual capacity depends on discharge current, temperature, and battery age. The open-circuit voltage is the terminal voltage when no current flows and the battery is electrochemically equilibrated. The working voltage is the terminal voltage during charge or discharge. The internal resistance consists of ohmic resistance and polarization resistance. The charge and discharge rate is often expressed in terms of C-rate:

$$ \text{C-rate} = \frac{\text{charge or discharge current (A)}}{\text{nominal capacity (Ah)}} $$

The state of health of a battery is related to the number of charge-discharge cycles and the depth of discharge. A high depth of discharge usually reduces cycle life. Self-discharge causes the SOC to decrease slowly when the EV battery pack is left open-circuited. The self-discharge rate can be defined as:

$$ \text{self-discharge rate} = \frac{C_a – C_b}{C_a \cdot T} \times 100\% $$

where \(C_a\) is the capacity before storage, \(C_b\) is the capacity after storage, and \(T\) is the storage time.

2.2 SOC Definition

The state of charge of an EV battery pack is defined as the ratio of remaining capacity to the nominal capacity. A common definition is:

$$ \text{SOC} = 1 – \frac{Q_i}{Q_n} = \frac{Q_c}{Q_n} $$

where \(Q_n\) is the nominal capacity, \(Q_c\) is the standard remaining capacity, and \(Q_i\) is the standard consumed capacity. When the battery is discharged at an actual current different from the standard current and at a temperature different from the standard temperature, an efficiency factor \(\eta\) must be used to convert the actual consumed capacity into the standard consumed capacity:

$$ \text{SOC} = 1 – \frac{Q_I}{Q_n} \eta $$

Here, \(\eta\) is a product of the temperature influence coefficient \(\eta_T\) and the charge-discharge rate coefficient \(\eta_i\):
$$ \eta = \eta_i \eta_T $$

For an EV battery pack composed of multiple cells, I adopt the “barrel principle”: the minimum SOC among all series-connected cells is regarded as the SOC of the whole EV battery pack. This conservative definition protects the weakest cell from over-discharge and over-charge.

2.3 Factors Influencing SOC

The SOC of an EV battery pack is affected by many factors, including discharge rate, temperature, cycle number, and self-discharge. The discharge rate affects the available capacity because high currents limit the depth of active material utilization. Temperature influences the electrolyte viscosity and lithium-ion diffusivity. Lower temperatures reduce available capacity. Cycle number causes gradual degradation of active material. Self-discharge reduces SOC during storage. The following table shows the measured capacity of a single 15 Ah LiFePO4 cell at different temperatures when discharged at a C/30 rate.

Temperature (°C) -20 0 20 25 40 60
Capacity (Ah) 10.06 13.28 14.68 14.97 15.75 15.88

3. Conventional SOC Estimation Methods

Several methods have been developed to estimate the SOC of an EV battery pack. Each method has its own advantages and limitations. In this section, I summarize the most commonly used methods.

3.1 Discharge Test Method

The discharge test method discharges the battery at a constant current until the cutoff voltage is reached. The discharged capacity is the product of current and time. This method is accurate but cannot be used for online SOC estimation because the battery must be taken offline. It is mainly used in the laboratory to calibrate battery models.

3.2 Open-Circuit Voltage Method

The open-circuit voltage of a LiFePO4 cell is related to the lithium concentration in the electrode materials. Therefore, a unique mapping between OCV and SOC exists under equilibrium conditions. The SOC can be obtained by measuring the open-circuit voltage after a long rest period. The relationship is useful for estimating the initial SOC of the EV battery pack, but it is not suitable for real-time estimation due to the long rest time and the flat OCV curve in the middle SOC range.

3.3 Ampere-Hour Counting Method

The ampere-hour counting method integrates the current flowing into or out of the EV battery pack. The SOC is calculated as:

$$ \text{SOC}(t) = \text{SOC}_0 – \frac{1}{Q_n} \int_0^t \eta i(\tau) d\tau $$

The main advantage of this method is its simplicity and real-time capability. However, it requires an accurate initial SOC and suffers from accumulated current measurement errors. To improve the accuracy, I introduce the charge-discharge rate coefficient \(\eta_i\) and the temperature coefficient \(\eta_T\) into the integration formula.

3.4 Internal Resistance Method

The internal resistance of a battery changes with SOC, especially near the end of discharge. By measuring the AC resistance at a certain frequency, the SOC can be inferred. However, the internal resistance is also affected by temperature, current, and battery age. This method is difficult to apply in an EV battery pack because the operating current and frequency vary continuously.

3.5 Load Voltage Method

The load voltage method uses the terminal voltage under load to estimate SOC. It is simple but highly current-dependent. It is generally used only as a reference for charge or discharge cutoff decisions.

3.6 Neural Network Method

Neural networks can model the nonlinear relationship between measurable inputs and SOC. A typical three-layer network takes voltage, current, temperature, and internal resistance as inputs and outputs SOC. This method requires extensive training data and the estimation accuracy depends strongly on the training process.

Method Accuracy Real-time capability Initial SOC required Accumulated error Application
Discharge test High No No No Laboratory
Open-circuit voltage Medium No No No Initial value
Ampere-hour counting Medium Yes Yes Yes Online
Internal resistance Low Yes No No Laboratory
Neural network Medium Yes No No Training required

4. Kalman Filtering for EV Battery Pack SOC Estimation

Kalman filtering is a recursive optimal state estimation algorithm for dynamic systems. It uses a state-space model and measured outputs to estimate the internal state of the system. For a linear system, the standard Kalman filter is optimal in the minimum mean-square-error sense. For the nonlinear EV battery pack model, an extended Kalman filter is used by linearizing the nonlinear functions around the current state estimate.

4.1 Standard Kalman Filter

The standard Kalman filter considers a linear discrete-time state-space model:

$$ x_{k+1} = A_k x_k + B_k u_k + w_k $$
$$ y_k = C_k x_k + D_k u_k + v_k $$

where \(x_k\) is the state vector, \(u_k\) is the input vector, \(y_k\) is the output vector, \(w_k\) is the process noise, and \(v_k\) is the measurement noise. Both noise terms are assumed to be zero-mean Gaussian white noise. The Kalman filter recursively computes a prediction and a correction. The prediction step is:

$$ x_k^- = A_{k-1} x_{k-1}^+ + B_{k-1} u_{k-1} $$
$$ P_k^- = A_{k-1} P_{k-1}^+ A_{k-1}^T + D_w $$

where \(P\) is the error covariance matrix and \(D_w\) is the process noise covariance. The correction step is:

$$ L_k = P_k^- C_k^T \left( C_k P_k^- C_k^T + D_v \right)^{-1} $$
$$ x_k^+ = x_k^- + L_k \left( y_k – \hat{y}_k \right) $$
$$ P_k^+ = \left( I – L_k C_k \right) P_k^- $$

where \(D_v\) is the measurement noise covariance and \(L_k\) is the Kalman gain.

4.2 Extended Kalman Filter

The battery model is nonlinear because the open-circuit voltage is a nonlinear function of SOC. The extended Kalman filter linearizes the nonlinear state and output functions using a first-order Taylor expansion. The nonlinear state-space model is:

$$ x_{k+1} = f(x_k, u_k) + w_k $$
$$ y_k = g(x_k, u_k) + v_k $$

At each time step, the Jacobian matrices are computed:

$$ A_k = \left. \frac{\partial f}{\partial x} \right|_{x_k^+, u_k} $$
$$ C_k = \left. \frac{\partial g}{\partial x} \right|_{x_k^-, u_k} $$

Then the same recursion as the standard Kalman filter is applied. The EKF is well suited for EV battery pack SOC estimation because it can correct the SOC estimate based on the measured terminal voltage even if the initial SOC is inaccurate.

4.3 Battery Models for Kalman Filtering

Several battery models can be used together with the extended Kalman filter. The composite model is a combination of the Shepherd model, the Unnewehr universal model, and the Nernst model. The state equation is:

$$ x_{k+1} = x_k – \frac{\eta_i \eta_T \Delta t}{Q_n} i_k $$

The output equation of the composite model is:

$$ y_k = K_0 – R i_k – \frac{K_1}{x_k} – K_2 x_k + K_3 \ln(x_k) + K_4 \ln(1-x_k) $$

where \(x_k\) is the SOC at time step \(k\), \(i_k\) is the current, \(R\) is the internal resistance, and \(K_0, K_1, K_2, K_3, K_4\) are model coefficients. The composite model is computationally simple and provides a good trade-off between accuracy and complexity. I therefore choose this model as the basis for my Kalman filtering correction algorithm.

Parameter Value Unit
\(K_0\) 3.391 V
\(R\) 0.0048 Ω
\(K_1\) -0.000268 V
\(K_2\) 0.1495 V
\(K_3\) 0.111 V
\(K_4\) -0.01955 V

4.4 Charge-Discharge Rate SOC Model

To account for the effect of current rate, I performed constant-current discharge experiments at several C-rates in a 25 °C environment. The total discharged capacity decreases as the discharge current increases. The ratio between the standard capacity and the actual capacity is defined as the rate coefficient \(\eta_i\). The measured data are fitted by a quadratic polynomial:

$$ \eta_i = \frac{14967}{14967 – 4.3859 i + 1.1509 i^2} $$

where \(i\) is the discharge current in amperes. This equation provides a simple way to compensate the ampere-hour counting result when the EV battery pack operates at different C-rates.

4.5 Temperature SOC Model

Temperature also has a strong influence on the available capacity of the EV battery pack. I measured the total discharge capacity at standard C/30 rate for different temperatures and fitted a fourth-order polynomial:

$$ \eta_T = 1 – 0.0036 T + 0.000013 T^2 – 0.00000035 T^3 + 0.0000000036 T^4 $$

where \(T\) is the battery surface temperature in degrees Celsius. The coefficient \(\eta_T\) is used to scale the SOC estimation in real time according to the measured battery temperature.

4.6 Open-Circuit Voltage SOC Model

I also developed a piecewise mapping between the open-circuit voltage and SOC. This mapping is used to determine the initial SOC before the EV battery pack starts charging or discharging. The mapping is based on experimental discharge data with periodic rests. In the middle SOC region, the OCV curve is relatively flat, while it changes rapidly at both ends. The piecewise functions are stored as lookup tables in the microcontroller to reduce computation time.

$$ \text{SOC}_0 = f_{\text{OCV}}(V_{\text{OCV}}) $$

The exact piecewise polynomial expressions are implemented in software. The lookup approach significantly reduces the computational burden of the microcontroller while maintaining a reasonable estimation accuracy.

4.7 Kalman Filtering Correction Algorithm

I combine the open-circuit voltage method, the ampere-hour counting method, and the extended Kalman filter into a unified algorithm. The algorithm operates as follows. When the EV battery pack is at rest, the open-circuit voltage of each cell is measured and the initial SOC is obtained from the OCV-SOC lookup table. The initial value is compared with the last SOC stored in the EEPROM and a corrected initial SOC is chosen. After the EV battery pack starts discharging, a 200-second warm-up period is used to let the battery settle into a stable operating state and reduce the influence of hysteresis. During this period, the ampere-hour counting method is used to update the SOC. After the warm-up period, the EKF is executed every five seconds to correct the accumulated SOC estimate.

The EKF algorithm uses the following state-space model:

$$ x_{k+1} = x_k – \frac{\eta_i \eta_T \Delta t}{Q_n} i_k $$
$$ y_k = K_0 – R i_k – \frac{K_1}{x_k} – K_2 x_k + K_3 \ln(x_k) + K_4 \ln(1-x_k) $$

The Jacobian matrix \(C_k\) is derived from the output equation:

$$ C_k = \frac{K_1}{x_k^2} – K_2 + \frac{K_3}{x_k} – \frac{K_4}{1-x_k} $$

Because the state equation is linear, \(A_k\) is simply equal to 1. The EKF recursion is performed as follows:

Initialization:
$$ x_0^+ = \text{SOC}_0 $$
$$ P_0^+ = \text{var}(x_0) $$

Prediction:
$$ x_k^- = x_{k-1}^+ – \frac{\eta_i \eta_T \Delta t}{Q_n} i_{k-1} $$
$$ P_k^- = P_{k-1}^+ + D_w $$

Output estimation:
$$ \hat{y}_k = K_0 – R i_k – \frac{K_1}{x_k^-} – K_2 x_k^- + K_3 \ln(x_k^-) + K_4 \ln(1-x_k^-) $$

Kalman gain:
$$ L_k = \frac{P_k^- C_k}{C_k P_k^- C_k + D_v} $$

Correction:
$$ x_k^+ = x_k^- + L_k \left( y_k – \hat{y}_k \right) $$
$$ P_k^+ = \left( 1 – L_k C_k \right) P_k^- $$

This Kalman filtering correction algorithm combines the strengths of all three methods. The open-circuit voltage method provides a good initial value. The ampere-hour counting method supplies a continuous baseline estimate. The extended Kalman filter corrects the SOC using the measured terminal voltage. This approach is particularly suitable for an EV battery pack because it is computationally efficient and robust to initial SOC errors and current sensor drift.

5. Hardware Design of the SOC Estimation System

The SOC estimation system for the EV battery pack is designed with a modular architecture. The main hardware modules are the data acquisition circuit, the microcontroller unit, the liquid crystal display, the EEPROM memory, the communication interfaces, the host computer monitoring unit, and the battery protection circuit. The overall architecture is shown in the following block diagram.

The microcontroller MC9S08AW32 is the core of the system. It controls the analog multiplexer and the analog-to-digital converter, processes the sampled signals, executes the Kalman filtering correction algorithm, and communicates with the host personal computer through a serial port. The MCU also manages the LCD display and the battery protection circuit.

5.1 Data Acquisition Circuit

The data acquisition circuit measures the voltage of each cell, the total voltage of the EV battery pack, the charge or discharge current, and the battery surface temperature. The current is measured with a Hall-effect current sensor LTS 6-NP. The sensor has a response time of less than 400 ns and a measurement accuracy of ±0.2%. The voltage is measured using precision resistor dividers. The temperature is measured with an LM35 analog temperature sensor. The output signals are conditioned and then converted to digital values by a 14-bit analog-to-digital converter MAX1174.

Parameter Value Unit
ADC resolution 14 bit
ADC sampling rate 135 ksps
Input voltage range -5 to +5 V
Current sensor range ±19.2 A
Current sensor accuracy ±0.2 %
Temperature sensor sensitivity 10 mV/°C
Voltage measurement resolution 1 mV

The analog multiplexer HCF4051 selects one of the analog signals at a time. A voltage follower circuit using TL062 op-amps provides high input impedance and low output impedance. A first-order RC low-pass filter is placed before the ADC to remove high-frequency noise. The sampling period is set to one second, which provides a good trade-off between real-time performance and computational load.

5.2 Battery Protection Circuit

The protection circuit prevents the EV battery pack from operating outside its safe working area. A power NMOS transistor STP75NF75 is placed in series with the battery pack. When the microcontroller detects an over-charge voltage, an over-discharge voltage, an over-current condition, or an excessive temperature, it turns off the NMOS transistor and disconnects the battery circuit. The safe operating area of the battery cells used in this study is listed in the table below.

Parameter Limit
Minimum cell voltage 2.8 V
Maximum cell voltage 3.8 V
Maximum discharge current 15 A
Maximum charge current 7.5 A
Maximum surface temperature 45 °C
Maximum temperature rise 4 °C per 10 s

5.3 Communication Interfaces

The system uses a serial communication interface to send battery data to the host computer. A MAX3232 chip converts the TTL level to RS-232 level. The communication baud rate is 9600 bps. The system also includes an SPI interface to expand the number of cells that can be monitored. With the SPI interface, multiple data acquisition boards can be connected to the same microcontroller, allowing the SOC estimation system to handle an EV battery pack with many cells.

5.4 Display and Storage

A 128×64 dot-matrix LCD module is used to display the battery voltage, current, temperature, SOC, and operating time. An EEPROM chip 24C08 stores the last SOC value and the number of charge-discharge cycles. This information is useful for providing a better initial SOC estimate at the next power-on.

6. Software Design

The software is written in C language using a modular design. The main software modules include system initialization, AD sampling, SOC estimation, battery protection, serial communication, LCD display, and EEPROM storage. The program flow can be summarized as follows.

After power-on, the microcontroller initializes its clock, I/O ports, serial ports, SPI module, I2C module, LCD controller, and real-time interrupt. The real-time interrupt is configured to generate an interrupt every one second. At the beginning, the microcontroller performs a pre-sampling of the battery voltages and currents to verify that the EV battery pack is in a normal state. If the battery is at rest, the open-circuit voltage is measured and the initial SOC is calculated. When charging or discharging begins, the real-time timer is started and the sampling loop is executed.

During each one-second interrupt, the system samples the voltage, current, and temperature. The sampled data are passed through a digital filter to reduce noise. The microcontroller calculates the corresponding physical values. The SOC estimation is updated every five seconds. During the first four seconds, the ampere-hour counting method is used. On the fifth second, the extended Kalman filter is used to correct the SOC. The LCD is refreshed at the same time. The serial port sends the battery data to the host computer.

To reduce the computation burden of the microcontroller, several lookup tables are used. The table parameters are listed below.

Table Input range Resolution Output scaling
OCV-SOC 2828 to 3335 mV 1 mV SOC × 10⁴
Rate coefficient 0 to 15 A 50 mA ηi × 10⁴
Temperature coefficient -20 to 50 °C 1 °C ηT × 10⁴
Jacobian Ck 0.0001 to 0.9999 0.02% Ck × 10⁵
Estimated output voltage 0.001 to 0.999 0.1% mV

The Matlab software is also used offline for model parameter identification. The parameter vector \(\theta = [K_0, R, K_1, K_2, K_3, K_4]^T\) is estimated using the least-squares method from experimental discharge data. The output equation can be written as:

$$ y_k = h_k^T \theta $$

where \(h_k = [1, i_k, 1/x_k, x_k, \ln(x_k), \ln(1-x_k)]^T\). The least-squares solution is:

$$ \theta = \left( H^T H \right)^{-1} H^T Y $$

where \(Y\) is the vector of measured terminal voltages and \(H\) is the matrix of regression vectors.

7. Experimental Results

7.1 Test Setup

I built an experimental platform consisting of the EV battery pack, the SOC estimation system, an electronic load, a high-precision battery tester, and a host computer. The electronic load was controlled by a program to simulate automotive driving cycles. The main specifications of the battery cells are listed in the following table.

Parameter Value
Cell type LiFePO4 polymer
Nominal voltage 3.2 V
Nominal capacity 15 Ah
Internal resistance ≤ 2.1 mΩ
Discharge cutoff voltage 2.8 V
Charge cutoff voltage 3.8 V
Maximum continuous discharge current 15 A

The battery pack was charged using a three-stage constant-current method. The first stage used a 0.3 C current until any cell reached 3.8 V. The charger was disconnected for 10 minutes. The second stage used a 0.1 C current until the cell voltage reached 3.8 V again, followed by a 15-minute rest. The third stage used a C/30 current until the cell voltage reached 3.8 V. This charging strategy prevents over-charge caused by voltage drops across the wiring resistance.

7.2 Driving Cycle Tests

To verify the performance of the proposed algorithm, I used the following standard driving cycles: HWFET, UDDS, and FUDS. These cycles generate highly dynamic current profiles that emulate real-world EV battery pack operating conditions. The current profiles were executed by the electronic load in constant-current mode. The current was updated every second. The test was stopped when any cell voltage reached 2.8 V.

Driving cycle Modified length (s) Number of cycles Discharge time (s) Maximum output power (W)
HWFET 766 6 4293 195.0
UDDS 955 5 4980 192.9
FUDS 998 4 4255 194.7

7.3 SOC Estimation Error Analysis

After each experiment, the true SOC was calculated offline using the recorded current and temperature data. The estimated SOC from the Kalman filtering correction algorithm was compared with the true SOC. The maximum and average estimation errors are summarized in the table below.

Driving cycle Maximum SOC error Average SOC error
HWFET 4.04% 1.74%
UDDS 7.80% 3.11%
FUDS 5.20% 2.30%

During the HWFET test, the initial SOC was exactly 100% because the EV battery pack was fully charged. The maximum SOC error remained below 4.04% throughout the entire discharge process. During the UDDS test, the initial SOC was about 65.2%, which was obtained from the open-circuit voltage and the stored EEPROM value. The maximum error was 7.8% but the average error was only 3.11%. During the FUDS test, the maximum error was 5.2% and the average error was 2.3%. These results confirm that the proposed Kalman filtering correction algorithm can provide an accurate online SOC estimate for the EV battery pack.

The experiments also show that the extended Kalman filter has a strong corrective ability. At the beginning of the EKF execution, the estimated SOC quickly converges to the true SOC. This is particularly important when the initial SOC is not accurately known. The combination of ampere-hour counting and EKF prevents long-term current integration errors from accumulating. The algorithm is therefore well suited for an EV battery pack operating under highly dynamic current profiles.

8. Conclusion and Future Work

In this dissertation, I have presented a complete solution for online and accurate SOC estimation of an EV battery pack based on Kalman filtering. The main contributions of this work are as follows.

First, I analyzed the characteristics of LiFePO4 batteries and the key factors that influence SOC, including discharge rate, temperature, self-discharge, and cycle life. I established a charge-discharge rate SOC model and a temperature SOC model based on experimental data.

Second, I proposed a Kalman filtering correction algorithm that combines the open-circuit voltage method, the ampere-hour counting method, and the extended Kalman filter. This algorithm provides a reliable initial SOC, a continuous baseline estimate, and a corrective mechanism to reduce estimation errors.

Third, I designed and implemented a complete hardware and software system for EV battery pack SOC estimation. The system can measure cell voltages, pack voltage, current, and temperature; execute the SOC algorithm; display the results; store the battery information; and protect the battery from abnormal operating conditions.

Fourth, I validated the proposed algorithm under HWFET, UDDS, and FUDS driving cycles. The maximum SOC estimation error was below 8%, and the average error was below 4% in all tested cases. These results meet the practical accuracy requirements of an EV battery pack management system.

There are still some improvements to be made in the future. The influence of battery self-discharge and battery health should be incorporated into the SOC model. The current experimental platform uses only four series-connected cells; a larger EV battery pack with more cells should be tested. The system should be optimized for low power consumption and stronger electromagnetic compatibility for use in an actual electric vehicle. Furthermore, an adaptive Kalman filter that adjusts the noise covariances online could further improve the robustness of the SOC estimation.

In conclusion, the Kalman filtering correction algorithm presented in this work offers an accurate, real-time, and practical SOC estimation method for EV battery packs. With further development, this method can be applied to a wide range of electric vehicle battery management systems and contribute to the safe and efficient operation of future electric vehicles.

Scroll to Top