In my research on renewable energy integration, I have focused on addressing the intermittency of wind power generation through advanced battery energy storage systems. The lithium-ion battery is a cornerstone of these systems due to its high energy density and efficiency. Accurate State of Charge (SOC) estimation for lithium-ion batteries is critical for ensuring reliability and longevity in wind power applications, where operational conditions are harsh and dynamic. Traditional methods often assume fixed noise statistics, but in reality, process and measurement noises vary, leading to estimation errors. In this article, I present a novel approach that combines an Unscented Kalman Filter (UKF) with an Auto-covariance Least Squares (ALS) method to improve SOC estimation accuracy for lithium-ion batteries. I will detail the battery model, noise estimation techniques, experimental validation, and provide extensive analysis with tables and formulas to summarize key findings.
The foundation of SOC estimation lies in an accurate battery model. I employ a first-order RC equivalent circuit model for the lithium-ion battery, as it balances complexity and precision. This model includes components that represent the battery’s dynamic behavior. The open-circuit voltage (OCV) is a nonlinear function of SOC, and the internal resistance varies with SOC. The model’s state variables typically include SOC and polarization voltage, while the input is the charge/discharge current. The discrete-time state-space representation is given by:
$$ x_{k+1} = f(x_k, u_k) + w_k $$
$$ z_k = h(x_k, u_k) + v_k $$
Here, \( x_k \) is the state vector at time \( k \), \( u_k \) is the input current, \( z_k \) is the measured terminal voltage, \( w_k \) is the process noise with covariance \( Q_w \), and \( v_k \) is the measurement noise with covariance \( R_v \). For the lithium-ion battery, the state equation can be derived from the RC model dynamics. Let \( \text{SOC}_k \) and \( V_{p,k} \) be the SOC and polarization voltage at time \( k \), respectively. Then, the state update is:
$$ \text{SOC}_{k+1} = \text{SOC}_k – \frac{\eta \Delta t}{C_n} i_k + w_{1,k} $$
$$ V_{p,k+1} = V_{p,k} \exp\left(-\frac{\Delta t}{\tau}\right) + R_p \left(1 – \exp\left(-\frac{\Delta t}{\tau}\right)\right) i_k + w_{2,k} $$
where \( \eta \) is the coulombic efficiency, \( \Delta t \) is the sampling time, \( C_n \) is the nominal capacity, \( \tau = R_p C_p \) is the time constant, \( R_p \) and \( C_p \) are the polarization resistance and capacitance, and \( w_{1,k} \) and \( w_{2,k} \) are process noise components. The output equation is:
$$ z_k = OCV(\text{SOC}_k) – R_s i_k – V_{p,k} + v_k $$
with \( R_s \) as the ohmic resistance. The OCV-SOC relationship for the lithium-ion battery is often characterized by a polynomial or lookup table, which I determined experimentally. To handle nonlinearities, I use the UKF, which approximates the state distribution using sigma points without linearization. However, the standard UKF assumes fixed \( Q_w \) and \( R_v \), which is impractical for wind power systems where noise statistics change due to temperature fluctuations and sensor drifts. Therefore, I integrated ALS to adaptively estimate \( R_v \), enhancing the lithium-ion battery SOC estimation.

Noise estimation is pivotal for robust SOC tracking. In my approach, I leverage the UKF’s unscented transformation to capture process noise statistics, but I focus on refining measurement noise covariance via ALS. The UKF algorithm involves generating sigma points \( \mathcal{X}_k \) around the state estimate \( \hat{x}_k \), propagating them through the nonlinear functions, and computing the predicted mean and covariance. The steps are summarized in Table 1.
| Step | Description | Equations |
|---|---|---|
| 1. Sigma Point Generation | Compute sigma points from state estimate and covariance. | $$ \mathcal{X}_k = [\hat{x}_k, \hat{x}_k + \gamma \sqrt{P_k}, \hat{x}_k – \gamma \sqrt{P_k}] $$ where \( \gamma = \sqrt{L + \lambda} \), \( L \) is state dimension, \( \lambda \) is scaling parameter. |
| 2. Prediction | Propagate sigma points through state function. | $$ \mathcal{X}_{k+1|k} = f(\mathcal{X}_k, u_k) $$ $$ \hat{x}_{k+1|k} = \sum_{i=0}^{2L} W_i^{(m)} \mathcal{X}_{i,k+1|k} $$ $$ P_{k+1|k} = \sum_{i=0}^{2L} W_i^{(c)} (\mathcal{X}_{i,k+1|k} – \hat{x}_{k+1|k})(\cdot)^T + Q_w $$ |
| 3. Update | Compute predicted measurement and Kalman gain. | $$ \mathcal{Z}_{k+1|k} = h(\mathcal{X}_{k+1|k}, u_k) $$ $$ \hat{z}_{k+1|k} = \sum_{i=0}^{2L} W_i^{(m)} \mathcal{Z}_{i,k+1|k} $$ $$ P_{zz} = \sum_{i=0}^{2L} W_i^{(c)} (\mathcal{Z}_{i,k+1|k} – \hat{z}_{k+1|k})(\cdot)^T + R_v $$ $$ P_{xz} = \sum_{i=0}^{2L} W_i^{(c)} (\mathcal{X}_{i,k+1|k} – \hat{x}_{k+1|k})(\mathcal{Z}_{i,k+1|k} – \hat{z}_{k+1|k})^T $$ $$ K_{k+1} = P_{xz} P_{zz}^{-1} $$ $$ \hat{x}_{k+1} = \hat{x}_{k+1|k} + K_{k+1} (z_{k+1} – \hat{z}_{k+1|k}) $$ $$ P_{k+1} = P_{k+1|k} – K_{k+1} P_{zz} K_{k+1}^T $$ |
However, \( R_v \) is often unknown or time-varying. To address this, I apply ALS, which estimates \( R_v \) by analyzing the autocorrelation of measurement residuals. The residual sequence \( \epsilon_k = z_k – \hat{z}_{k|k-1} \) may exhibit temporal correlations due to incorrect noise assumptions. ALS formulates an optimization problem to compute \( R_v \) from the residuals over a window. Let \( N \) be the lag window size. The autocorrelation matrix \( \mathbf{R}_\epsilon(N) \) is constructed from residuals. The relationship between \( \mathbf{R}_\epsilon(N) \), \( Q_w \), and \( R_v \) is derived through state error dynamics. The state error propagation is:
$$ e_{k+1} = (I – K_k H_k) e_k + (I – K_k) \begin{bmatrix} w_k \\ v_k \end{bmatrix} $$
where \( H_k \) is the linearized output matrix. The measurement residual is \( \epsilon_k = H_k e_k + v_k \). The autocovariance \( l_{k,k+j} = E[\epsilon_k \epsilon_{k+j}^T] \) can be expressed in terms of \( Q_w \) and \( R_v \). Using vectorization, we obtain:
$$ \text{vec}(\mathbf{R}_\epsilon(N)) = \mathbf{A} \text{vec}(Q_w) + \mathbf{B} \text{vec}(R_v) $$
where \( \mathbf{A} \) and \( \mathbf{B} \) are matrices derived from system matrices and Kalman gains. By solving a least squares problem over a sliding window, \( R_v \) is estimated as:
$$ \hat{R}_v = \arg \min_{R_v} \| \text{vec}(\mathbf{R}_\epsilon(N)) – \mathbf{B} \text{vec}(R_v) \|^2 $$
This estimated \( \hat{R}_v \) is then fed into the UKF update step, adapting to changing noise conditions. The combined UKF-ALS algorithm enhances SOC estimation for lithium-ion batteries by dynamically adjusting to measurement noise, which is crucial in wind power environments where sensor inaccuracies arise from temperature drifts and electromagnetic interference.
To validate my approach, I conducted extensive experiments on a lithium-ion battery pack under various temperatures simulating wind farm conditions. The battery used was a 3.2V 30Ah lithium iron phosphate (LiFePO4) cell, common in energy storage due to its safety and cycle life. The test platform included a battery cycler, temperature chamber, and data acquisition system with voltage, current, and temperature sensors. I implemented the UKF and UKF-ALS algorithms in MATLAB, with real-time data processing. The initial SOC was set to 67% while the true SOC was 100%, to test convergence. Tests were performed at -10°C, 0°C, 20°C, and 40°C, covering typical operational ranges for lithium-ion batteries in wind applications.
The results demonstrate the superiority of UKF-ALS. As shown in Table 2, the Mean Absolute Error (MAE), maximum error, and final error are reduced across all temperatures compared to standard UKF. This improvement stems from the adaptive noise estimation, which compensates for non-Gaussian and biased measurement noise. For instance, at -10°C, the MAE dropped from 1.3% to 0.3%, highlighting the algorithm’s robustness in cold climates where lithium-ion battery performance degrades. The convergence speed was also maintained, with both methods reaching near-true SOC within 10 minutes despite the incorrect initial value.
| Temperature | Algorithm | MAE (%) | Max Error (%) | Final Error (%) |
|---|---|---|---|---|
| -10°C | UKF | 1.3 | 2.3 | 1.2 |
| UKF-ALS | 0.3 | 0.7 | 0.7 | |
| 0°C | UKF | 0.9 | 1.1 | 0.6 |
| UKF-ALS | 0.2 | 0.4 | 0.3 | |
| 20°C | UKF | 2.5 | 4.3 | 0.4 |
| UKF-ALS | 2.1 | 4.1 | 0.2 | |
| 40°C | UKF | 1.2 | 1.4 | 0.8 |
| UKF-ALS | 0.5 | 0.9 | 0.2 |
Further analysis involves the impact of model parameters on SOC estimation. The lithium-ion battery model parameters, such as \( R_s \), \( R_p \), and \( C_p \), were identified using a hybrid pulse test. Table 3 lists these parameters at different SOC levels and temperatures, illustrating their variability. This underscores the need for adaptive algorithms like UKF-ALS, as fixed parameters can lead to errors.
| SOC Range (%) | Temperature (°C) | \( R_s \) (mΩ) | \( R_p \) (mΩ) | \( C_p \) (F) |
|---|---|---|---|---|
| 0-20 | -10 | 15.2 | 8.5 | 1200 |
| 20-40 | -10 | 14.8 | 7.9 | 1250 |
| 40-60 | 0 | 12.3 | 6.5 | 1400 |
| 60-80 | 20 | 10.1 | 5.2 | 1600 |
| 80-100 | 40 | 9.5 | 4.8 | 1800 |
The UKF-ALS algorithm’s computational complexity is slightly higher than UKF due to the ALS step, but it remains feasible for real-time implementation on embedded systems in wind power plants. I evaluated the execution time on a microcontroller, showing an increase of only 15% per iteration, which is acceptable given the sampling intervals of seconds. The benefits for lithium-ion battery management include prolonged battery life and improved system efficiency, as accurate SOC prevents overcharge and deep discharge.
In addition to temperature, I tested the algorithm under dynamic current profiles emulating wind power fluctuations. The current input \( i_k \) was derived from real wind data, featuring rapid changes and periods of low power. The SOC estimation error remained below 2% even during these transients, demonstrating the algorithm’s resilience. The ALS component effectively tracked measurement noise covariance, which varied with current magnitude due to sensor nonlinearities. This adaptability is key for lithium-ion batteries in renewable energy, where operating conditions are unpredictable.
To provide deeper insight, I derived the theoretical bounds on SOC estimation error. Using the Cramér-Rao lower bound (CRLB) for nonlinear systems, the minimum variance of an unbiased SOC estimator depends on the Fisher information matrix. For the lithium-ion battery model, the CRLB can be approximated as:
$$ \text{Var}(\hat{\text{SOC}}_k) \geq \left( \sum_{i=1}^k \frac{1}{\sigma_v^2} \left( \frac{\partial h}{\partial \text{SOC}} \right)^2 \right)^{-1} $$
where \( \sigma_v^2 \) is the measurement noise variance. With ALS, \( \sigma_v^2 \) is estimated accurately, allowing the estimator to approach this bound. In contrast, fixed noise assumptions lead to larger variances, as observed in my experiments.
The integration of UKF-ALS into a battery management system (BMS) for wind power involves periodic noise covariance updates. I recommend updating \( R_v \) every few minutes based on a moving window of residuals, balancing accuracy and computational load. This strategy ensures that the lithium-ion battery SOC estimation remains robust over long durations, essential for grid-scale storage where maintenance intervals are long.
In conclusion, my research presents a significant advancement in SOC estimation for lithium-ion batteries used in wind power generation. By combining UKF with ALS, I achieved enhanced accuracy across a wide temperature range, addressing the limitations of fixed noise assumptions. The lithium-ion battery, as a critical component in energy storage, benefits from this improved estimation, leading to safer and more efficient wind power integration. Future work will explore extending this method to battery state-of-health estimation and multi-cell pack balancing, further optimizing renewable energy systems.
