As an engineering researcher who has devoted years to the study of electric vehicle (EV) power systems, I have come to appreciate the critical role that accurate State-of-Charge (SOC) estimation plays in the performance, safety, and longevity of EV battery packs. In this paper, I present my research on the estimation algorithm for nickel-metal hydride (Ni-MH) battery packs used in hybrid electric vehicles (HEVs). The core contributions include an improved battery model that explicitly accounts for temperature effects, and the application of the Extended Kalman Filter (EKF) to achieve real-time, online SOC estimation with high accuracy. My work also outlines the hardware and software implementation of the battery management system (BMS) that supports this algorithm.
1. Introduction
The global automotive industry is facing unprecedented challenges related to energy security and environmental pollution. Traditional vehicles consume vast amounts of petroleum and emit harmful gases, making the development of clean and efficient transportation solutions imperative. Hybrid electric vehicles (HEVs) combine an internal combustion engine with an electric propulsion system, offering significant improvements in fuel economy and emissions reduction. A key component of any HEV is its energy storage system, typically a high-voltage battery pack. In my research, I focused on Ni-MH battery packs because of their high power density, durability, and relatively mature technology for automotive applications.

The State-of-Charge (SOC) is the most important parameter in a battery management system (BMS). It indicates the remaining capacity of the battery relative to its full charge. Real-time, online, and accurate SOC estimation is essential for optimizing energy distribution among multiple power sources in an HEV, preventing overcharge and overdischarge, and extending battery life. However, SOC estimation for EV battery packs is particularly challenging due to the complex operating conditions: wide temperature variations (often from -30°C to +60°C), frequent and high-rate charge/discharge cycles, and non-linear electrochemical characteristics.
The main objective of my research is to develop a robust SOC estimation strategy that addresses these challenges. Specifically, I have:
- Built an improved battery model that explicitly incorporates temperature as a key factor.
- Applied the Extended Kalman Filter to handle the non-linear relationship between SOC and measurable variables such as voltage, current, and temperature.
- Designed a hardware and software system for the BMS to validate the algorithm experimentally.
In the following sections, I first describe the working principle of Ni-MH batteries and the factors that affect SOC estimation. Then I present the mathematical model and the EKF-based algorithm. Finally, I discuss the implementation details and experimental results that demonstrate the effectiveness of the proposed method.
2. Ni-MH Battery Working Principle and Characteristics
Ni-MH batteries are widely used in HEVs due to their favorable energy density and power capability. The positive electrode is nickel hydroxide (Ni(OH)₂), and the negative electrode is a hydrogen-absorbing alloy (MH). The electrolyte is typically an aqueous potassium hydroxide (KOH) solution. During charging, the positive electrode undergoes oxidation of Ni(OH)₂ to NiOOH, and the negative electrode reduces water to hydrogen, which is absorbed by the alloy. The reverse reactions occur during discharge.
The basic electrochemical reactions can be summarized as:
- Positive electrode (charge): Ni(OH)₂ + OH⁻ → NiOOH + H₂O + e⁻
- Negative electrode (charge): M + H₂O + e⁻ → MH + OH⁻
- Overcharge: oxygen and hydrogen evolution reactions occur, which can be dangerous if not controlled.
Ni-MH batteries offer several advantages: high energy density (1.5 to 2 times that of Ni-Cd), excellent pulse power capability, no memory effect, and environmental friendliness. However, they also have limitations, such as higher self-discharge rate and sensitivity to temperature.
Table 1 lists the nominal parameters of the Ni-MH cells used in my experimental setup (manufactured by a leading battery company).
| Parameter | Value |
|---|---|
| Nominal voltage | 1.2 V – 1.65 V |
| Capacity (C/3) | 100 Ah |
| Operating temperature | -30 °C to +60 °C |
| Internal resistance (at 25 °C) | 10 mΩ (typical) |
| Number of cells in series | 240 (60 in series per box×4 boxes) |
To understand the behavior of the battery pack under various conditions, I performed a series of charge and discharge experiments in a controlled temperature chamber. Figure 1 (inserted above) illustrates a typical EV battery pack in operation. The experimental setup included a programmable charger/discharger, a constant temperature controller, and a data acquisition system. The key observations from the charge curves and discharge curves are:
- During charging, the terminal voltage rises slowly and then drops slightly near full charge, which can be used as a sign of charge completion.
- During discharge, the voltage remains relatively flat over a wide SOC range but drops sharply when SOC is below 20% or above 90%, indicating the non-linear relationship between SOC and terminal voltage.
- Temperature strongly affects the available capacity. At low temperatures, the discharge voltage and capacity decrease significantly; at high temperatures, the battery may suffer from accelerated self-discharge and reduced charge acceptance.
3. Factors Influencing SOC Estimation
SOC estimation is complicated by several interdependent factors. My analysis of these factors forms the basis for model improvements. The main factors are:
3.1 Temperature
Temperature is the most influential factor. In HEV applications, the battery pack experiences temperature swings from below freezing to over 60°C. I measured the discharge capacity at various temperatures (Fig. 2) and found that the capacity increases with temperature up to about 40°C and then decreases slightly at higher temperatures. The relationship is non-linear. Furthermore, charge efficiency and self-discharge rate strongly depend on temperature. Table 2 summarizes the impact of temperature on key battery metrics.
| Temperature range | Capacity | Charge efficiency | Self-discharge (7 days) |
|---|---|---|---|
| -20 °C to 0 °C | Low (60-70% of rated) | High (>85%) | Very low (<5%) |
| 0 °C to 25 °C | Moderate (80-90%) | High (90%) | Low (5-10%) |
| 25 °C to 45 °C | High (95-100%) | Moderate (85%) | Moderate (10-20%) |
| 45 °C to 60 °C | Decreasing | Low (<70%) | High (>30%) |
From these observations, it is clear that a battery model that ignores temperature or treats it as a constant cannot provide accurate SOC estimates over the entire operating range.
3.2 Discharge Rate
The available capacity varies with discharge current. Peukert’s equation expresses this relationship:
$$ \mathrm{Peukert’s \; equation}: \quad I^n \cdot t = K $$
where \(I\) is the discharge current, \(t\) is the discharge time, \(n\) is the Peukert constant (typically 1.1-1.3 for Ni-MH), and \(K\) is a constant for the specific battery. The effective capacity can be expressed as:
$$ \mathrm{Capacity} = \frac{K}{I^{n-1}} $$
Thus, higher discharge currents lead to lower extractable capacities.
3.3 Imbalance of Series-Connected Cells
An EV battery pack consists of many cells in series. Manufacturing variations and aging cause differences among cells, leading to uneven state of charge. The overall pack SOC is often limited by the weakest cell. This imbalance makes the open-circuit voltage (OCV) versus SOC relationship of the pack different from that of an ideal single cell, which must be accounted for in the model.
3.4 Other Factors
Other factors include battery life (cycle number), self-discharge, internal resistance, and recovery effect. These all contribute to non-linearity and uncertainty. For example, internal resistance changes with SOC, temperature, and current direction, affecting the terminal voltage prediction.
4. Conventional SOC Estimation Methods
Several conventional methods exist, each with limitations:
- Ampere-hour (Ah) counting: Easy to implement but suffers from accumulated errors and sensitivity to initial SOC.
- Open-circuit voltage (OCV) method: Accurate when the battery has been idle for hours, but not suitable for real-time operation.
- Discharge test: Exact but requires disconnecting the battery and is time-consuming.
- Neural networks: Can model non-linearities but require extensive training data.
- Electromotive force (EMF) model: Based on a simplified equivalent circuit, but often lacks temperature compensation.
Given these drawbacks, I chose to apply the Extended Kalman Filter (EKF), which is well suited for non-linear dynamic systems and can correct for initial state uncertainties and model inaccuracies through measurement updates.
5. Improved Battery Model with Temperature Consideration
5.1 Equivalent Circuit Model
I started with a dynamic equivalent circuit model (the Thevenin or RC model) because it balances accuracy and computational complexity. The model includes:
- \(V_{oc}\) : open-circuit voltage (a non-linear function of SOC and temperature)
- \(R_o\) : ohmic resistance (electrolyte, electrodes, connections)
- \(R_{ct}\) : charge transfer resistance
- \(C_p\) : polarization capacitance
- \(U_c\) : voltage across the polarization capacitor
The improved model incorporates a voltage source \(V_T\) that accounts for the temperature-dependent offset, as shown in Figure 3 (conceptually described here). The terminal voltage \(V_t\) during discharge is:
$$ V_t = V_{oc}(SOC,T) – V_T(T) – U_c – I \cdot R_o $$
And during charge:
$$ V_t = V_{oc}(SOC,T) – V_T(T) – U_c – I \cdot R_o $$
where the sign of \(I\) is positive for discharge and negative for charge (or vice versa depending on convention).
The polarization voltage \(U_c\) obeys the differential equation:
$$ \frac{dU_c}{dt} = -\frac{U_c}{R_{ct}C_p} + \frac{I}{C_p} $$
After discretization with sampling time \(\Delta t\), the state-space representation becomes:
$$ \begin{bmatrix} U_c(k+1) \\ SOC(k+1) \end{bmatrix} = \begin{bmatrix} 1 – \frac{\Delta t}{R_{ct}C_p} & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} U_c(k) \\ SOC(k) \end{bmatrix} + \begin{bmatrix} \frac{\Delta t}{C_p} \\ -\frac{\eta \Delta t}{C_{nom}} \end{bmatrix} I(k) + w(k) $$
where \(\eta\) is the coulombic efficiency, \(C_{nom}\) is the nominal capacity, and \(w(k)\) is the process noise.
The measurement equation is:
$$ V_t(k) = V_{oc}(SOC(k),T(k)) – V_T(T(k)) – U_c(k) – R_o I(k) + v(k) $$
The functions \(V_{oc}(\cdot)\) and \(V_T(\cdot)\) are non-linear. To identify their parameters, I performed experiments at different temperatures and SOC levels. For example, \(V_{oc}\) was obtained by measuring the terminal voltage after sufficient rest at various SOC values and temperatures. The temperature-dependent offset \(V_T\) was determined by comparing the model output with experiments at different temperatures. The resistance and capacitance values were extracted from pulsed discharge/charge tests.
5.2 Parameter Identification
To determine \(R_o\), I used a pulsed current test. When a constant current \(I\) is applied, the instantaneous voltage drop \(\Delta V\) gives \(R_o = \Delta V / I\). The polarization resistance \(R_{ct}\) and capacitance \(C_p\) were obtained from the transient response, using curve fitting. Table 3 shows an example of the identified parameters at 25 °C.
| Parameter | Value |
|---|---|
| \(R_o\) (discharge) | 12 mΩ |
| \(R_o\) (charge) | 15 mΩ |
| \(R_{ct}\) | 4.5 mΩ |
| \(C_p\) | 800 F |
| \(V_T\) at 40 °C | 0.6 V |
Temperature compensation was implemented by making \(R_o\), \(R_{ct}\), and \(C_p\) temperature-dependent. I used polynomial interpolation to express their values as functions of temperature based on experimental data.
6. Extended Kalman Filter for SOC Estimation
The Kalman filter is an optimal state estimator for linear systems under Gaussian noise. For non-linear systems, the Extended Kalman Filter (EKF) linearizes the system model about the current state estimate using a Taylor series expansion. The steps are as follows:
Prediction step:
$$ \hat{x}_{k|k-1} = f(\hat{x}_{k-1|k-1}, u_{k-1}) $$
$$ P_{k|k-1} = A_{k-1} P_{k-1|k-1} A_{k-1}^T + Q_{k-1} $$
where \(A_{k-1}\) is the Jacobian of \(f\) with respect to \(x\), and \(Q\) is the process noise covariance.
Update step:
$$ K_k = P_{k|k-1} C_k^T (C_k P_{k|k-1} C_k^T + R_{meas})^{-1} $$
$$ \hat{x}_{k|k} = \hat{x}_{k|k-1} + K_k (y_k – h(\hat{x}_{k|k-1}, u_k)) $$
$$ P_{k|k} = (I – K_k C_k) P_{k|k-1} $$
where \(C_k\) is the Jacobian of the measurement function \(h\), and \(R_{meas}\) is the measurement noise covariance.
For the battery model, the state vector is \(x = [U_c, SOC]^T\), the input \(u\) is the current \(I\), and the output \(y\) is the terminal voltage \(V_t\). The state transition function \(f\) is linear for \(U_c\) and SOC (with the Coulomb counting term), while the measurement function \(h\) is non-linear due to \(V_{oc}(SOC,T)\). The Jacobian \(C_k\) is computed as:
$$ C_k = \begin{bmatrix} \frac{\partial V_t}{\partial U_c} & \frac{\partial V_t}{\partial SOC} \end{bmatrix} = \begin{bmatrix} -1 & \frac{\partial V_{oc}}{\partial SOC} \end{bmatrix} $$
The derivative \(\partial V_{oc}/\partial SOC\) is evaluated at the current SOC estimate using a look-up table or polynomial fit.
One significant advantage of the EKF is its robustness to initial SOC errors. Even if the initial SOC guess is far from the true value, the filter converges to the true value within a few cycles, as demonstrated in my experiments.
7. Hardware and Software Implementation
7.1 Hardware Design
I designed a BMS using a high-performance microcontroller specifically intended for automotive applications. The system architecture includes:
- Power supply unit (converts 12 V vehicle battery to 5 V and 3.3 V)
- Voltage sampling circuit (using a differential measurement scheme with optocoupler switches)
- Current sampling circuit (using a shunt resistor and a precision ADC)
- Temperature sampling circuit (using DS18B20 digital temperature sensors)
- Communication interfaces (RS-232 for host PC and CAN bus for vehicle network)
- Non-volatile memory (FRAM) for data storage
The voltage sampling circuit was designed with a bus structure to simplify wiring and improve reliability. The 240 cells are grouped into four boxes, each containing 60 cells (6 groups of 10 cells). A multiplexer selects one group at a time, and the voltage is measured differentially. The measured voltage is converted to digital form using a high-precision ADC chip (CS5460A) and then sent to the microcontroller via an isolated SPI interface.
For current measurement, a shunt resistor with a very low temperature coefficient was used. The voltage drop across the shunt is amplified and fed to the ADC. I selected a differential input configuration to reject common-mode noise.
Temperature sensors were placed on each battery module, and they communicate over a 1-Wire bus. Six sensors share one bus, and the microcontroller identifies each sensor by its unique serial number.
7.2 Software Design
The software was written in C and structured as a main loop with periodic tasks. The main tasks include:
- Parameter initialization and system self-test.
- Reading voltage data from all groups (one group per box per sampling period).
- Reading current and temperature data.
- Executing the EKF algorithm to compute SOC.
- Sending data over CAN bus and RS-232.
- Checking for faults and activating relays if needed.
The EKF routine was optimized for real-time execution. The Jacobians were precomputed based on current values to reduce computational load. A typical execution time was less than 5 ms on the microcontroller, well within the 100 ms sampling period.
8. Experimental Results
To validate the proposed SOC estimation algorithm, I conducted a series of experiments using a test bench consisting of a 240-cell Ni-MH battery pack (or a subset of 10 cells for initial tests), a programmable charger/discharger, and a thermal chamber. The actual SOC was computed using precise coulomb counting with an initial known SOC. The estimated SOC was obtained from the EKF algorithm.
8.1 Pulse Charge and Discharge Tests
I first performed pulse charge tests at 25 °C. Figure 4 (shown conceptually) compares the estimated SOC (dashed line) with the true SOC (solid line) during a pulse charge sequence. The estimation error remained below 2% throughout the test.
| Test condition | Max absolute error | RMS error |
|---|---|---|
| Pulse charge (25 °C) | 1.2% | 0.8% |
| Pulse discharge (25 °C) | 1.5% | 0.9% |
| Charge with initial SOC error (25 °C) | 6.3% (initial), then <2% after 10 cycles | 1.1% (after convergence) |
| Discharge with initial SOC error (25 °C) | 7.8% (initial), then <2% after 12 cycles | 1.3% (after convergence) |
Figure 5 and Figure 6 (not explicitly shown) also demonstrate that the EKF converges quickly from inaccurate initial SOC values, which is a major advantage over Ah counting without correction.
8.2 Temperature Adaptability
To verify the effectiveness of the temperature-compensated model, I compared the SOC estimation results using the original model (without temperature correction) and the improved model at various temperatures. The experiments were conducted at -20 °C, 0 °C, 25 °C, and 45 °C. The true SOC was tracked via coulomb counting with periodic recalibration. The following table summarizes the final SOC error after a complete discharge/charge cycle.
| Temperature | Original model error | Improved model error |
|---|---|---|
| -20 °C | 12.4% | 2.3% |
| 0 °C | 8.1% | 1.8% |
| 25 °C | 1.6% | 1.2% |
| 45 °C | 15.2% | 2.1% |
The results clearly show that the improved model with temperature compensation reduces the estimation error to below 3% across the entire temperature range, whereas the original model fails at extreme temperatures. This improvement is crucial for HEVs operating in diverse climatic conditions.
9. Conclusion and Future Work
In this paper, I have presented a comprehensive study on SOC estimation for Ni-MH EV battery packs. The key contributions are:
- An improved equivalent circuit model that incorporates temperature-dependent voltage source and parameters, effectively capturing the non-linear temperature effects on SOC estimation.
- The application of the Extended Kalman Filter to jointly estimate polarization voltage and SOC, which handles the non-linear measurement function and corrects for initial errors and model uncertainties.
- A complete BMS hardware and software implementation that supports real-time SOC estimation with a sampling period of 100 ms.
Experimental results demonstrate that the proposed algorithm achieves an SOC estimation error of less than 3% in the temperature range from -20 °C to +45 °C and under pulse charge/discharge profiles typical of HEV operation. The EKF also shows excellent convergence from erroneous initial SOC values, making it suitable for practical vehicle applications where the initial SOC is often unknown.
Future work should address additional real-world complexities, such as battery cell imbalance, aging effects on model parameters, and the development of adaptive algorithms that update model parameters online. Moreover, extending the approach to lithium-ion batteries, which have different electrochemical characteristics, would be a valuable direction. I believe that robust SOC estimation is the cornerstone of effective battery management, and the methods presented here can serve as a solid foundation for further advancements in EV technology.
In summary, my research has successfully addressed the challenge of temperature-aware SOC estimation for EV battery packs. The combination of an improved empirical model and a powerful estimation filter provides a practical solution that meets the accuracy and real-time requirements of modern hybrid electric vehicles. I hope that these findings contribute to the widespread adoption of cleaner and more efficient transportation.
