The accurate estimation of the state of health (SOH) of lithium-ion batteries is essential for optimizing the operation, management, and maintenance of battery energy storage systems (BESS). Traditional methods that extract health features from a single charging stage often fail to capture the full degradation information, limiting estimation accuracy. In this work, we propose a novel SOH estimation method for battery energy storage system applications that fuses health features from both the constant voltage (CV) charging stage and the relaxation stage. By combining the interval duration from the final segment of the CV charging stage with the Shannon entropy and maximum curvature of the relaxation voltage curve, our approach mines richer aging information while being independent of uncertain charging start points. Experimental results on multiple battery datasets (NCA, NCM, NCA+NCM) under various operating conditions demonstrate that the proposed two-stage feature combination significantly outperforms single-stage feature combinations, achieving an average mean absolute error (MAE) of 0.66%, mean squared error (MSE) of 0.85%, and R² of 0.97. The method is particularly suitable for real-world battery energy storage system scenarios where only partial charging data are available.
Lithium-ion batteries are widely used in battery energy storage systems due to their high energy density and long cycling life. However, aging phenomena such as capacity fade and impedance rise pose safety risks. SOH estimation, typically defined as the ratio of current maximum available capacity to nominal capacity, is a key indicator for battery health management. Data-driven approaches have become mainstream, where the critical step is extracting features highly correlated with SOH. Existing feature extraction methods often rely on constant current (CC) charging stage data, but in actual battery energy storage system operation, charging start points are unpredictable, making CC-based features unreliable. To address this, we focus on the CV charging stage and the relaxation stage, both of which are less affected by charging start-point uncertainty. However, prior studies use features from only one stage, leaving room for improvement. Our work fuses features from both stages to fully exploit aging information.
Experimental Dataset
We use a publicly available dataset from the literature that includes 18650 lithium-ion batteries with cathode materials NCA, NCM, and NCA+NCM. Five operating conditions are randomly selected, as summarized in Table 1. The dataset provides cycling data with recorded voltage, current, and capacity.
| Dataset Name | Temperature (°C) | Charging Current Rate (C) | Discharging Current Rate (C) | Operating Condition Code |
|---|---|---|---|---|
| NCA | 25 | 1 | 1 | NCA-CY25-1/1 |
| NCA | 45 | 0.5 | 1 | NCA-CY45-0.5/1 |
| NCM | 35 | 0.5 | 1 | NCM-CY35-0.5/1 |
| NCM | 45 | 0.5 | 1 | NCM-CY45-0.5/1 |
| NCA+NCM | 25 | 0.5 | 4 | NCA+NCM-CY25-0.5/4 |
Two‑Stage Health Feature Construction
Health Feature from Constant Voltage Charging Stage
During the CV stage, the battery is held at a constant voltage (e.g., 4.2 V) while the current decays. The time required to traverse a specific current interval is sensitive to battery aging. We divide the entire CV charging curve into \(n\) equal current intervals (by current value) and obtain the duration of each interval. Let the current values at division points be:
$$ I_n = [I_{n1}, I_{n2}, \dots, I_{n(i+1)}] $$
where \(i = 1,2,\dots,n\). The corresponding interval durations are:
$$ t_n = [t_{n1}, t_{n2}, \dots, t_{ni}] $$
We choose the duration of the last interval (the segment immediately before the relaxation stage) as the health feature, denoted \(t_{nn}\). Figure 1 (in the original paper) illustrates the concept for \(n=6\). In practice, only the start and end currents of the last interval need to be known, avoiding storage of the entire current profile and reducing data volume. We evaluate \(n = 4, 6, 8\), obtaining features \(t_{44}, t_{66}, t_{88}\), and compare them with the total CV charging time \(T_{cv}\).
Health Features from Relaxation Stage
The relaxation voltage curve after charging contains valuable aging information. We extract three candidate features: Shannon entropy, maximum curvature, and skewness of the voltage drop sequence.
Shannon Entropy: The randomness of relaxation voltage increases with battery degradation. The Shannon entropy of the relaxation voltage sequence \(U_{sha}\) is computed as:
$$ U_{sha} = \sum_{h=1}^{q} p(w_h) \log\left[\frac{1}{p(w_h)}\right] $$
where \(p(w_h)\) is the probability distribution of voltage values.
Maximum Curvature: The curvature of the relaxation voltage curve reflects its shape change due to aging. The maximum curvature \(U_r\) is obtained by first computing the first derivative:
$$ D_1(\alpha) = \frac{U(\alpha) – U(\alpha-1)}{t(\alpha)-t(\alpha-1)} $$
then the second derivative:
$$ D_2(\alpha) = \frac{D_1(\alpha) – D_1(\alpha-1)}{t(\alpha)-t(\alpha-1)} $$
and taking the maximum value of \(D_2(\alpha)\).
Skewness of Voltage Drop Sequence: The skewness \(U’_{skr}\) is defined as:
$$ U’_{skr} = \frac{(X_1-\mu)^3 + (X_2-\mu)^3 + \dots + (X_j-\mu)^3}{j \cdot \sigma^3} $$
where \(X_1,\dots,X_j\) are the voltage values in the drop sequence, \(\mu\) is the mean, \(\sigma\) the standard deviation, and \(j\) the number of points.
Correlation Analysis and Feature Selection
We compute the Pearson correlation coefficient between each candidate feature and SOH using battery #77 from the NCA+NCM-CY25-0.5/4 condition. The Pearson coefficient is given by:
$$ \rho = \frac{\sum_{a=1}^u (F_a – \bar{F})(SOH_a – \overline{SOH})}{\sqrt{\sum_{a=1}^u (F_a – \bar{F})^2 \sum_{a=1}^u (SOH_a – \overline{SOH})^2}} $$
Results are shown in Table 2.
| Feature | Pearson Coefficient |
|---|---|
| \(T_{cv}\) | -0.99 |
| \(t_{44}\) | -0.99 |
| \(t_{66}\) | -0.99 |
| \(t_{88}\) | -0.99 |
| \(U_{sha}\) | 0.99 |
| \(U_r\) | 0.96 |
| \(U’_{skr}\) | -0.36 |
All CV stage features exhibit very high absolute correlation. Among relaxation features, \(U_{sha}\) and \(U_r\) show strong correlation (absolute values >0.96), while \(U’_{skr}\) is weak (-0.36). Therefore, we select \(U_{sha}\) and \(U_r\) as the relaxation health features.
SOH Estimation Method Based on Random Forest
Random Forest Regressor
Random forest is an ensemble of decision trees that aggregates predictions from multiple trees. The SOH estimate is:
$$ y_{RF} = \frac{1}{m}\sum_{\beta=1}^m u_{\beta} $$
where \(u_{\beta}\) is the prediction of the \(\beta\)-th tree and \(m\) is the number of trees. The algorithm uses bootstrap sampling and random feature selection to reduce overfitting and improve generalization. The flowchart (omitted here) involves: (1) preprocessing, (2) hyperparameter tuning via random search, (3) training, and (4) inverse normalization of predictions.
Implementation Procedure
We first filter outliers using predefined bad-value ranges, then standardize features to zero mean and unit variance. Hyperparameters (number of trees \(E_n\), max features \(F_{max}\), max depth \(D_{max}\), min samples leaf \(L_{min}\)) are optimized using random search on a validation set (batteries #71 and #72 from NCA+NCM-CY25-0.5/1). The best hyperparameters for each feature combination are listed in the experimental sections.
Experimental Results and Analysis
Evaluation Metrics
We use MAE, MSE, and R² to evaluate estimation accuracy:
$$ \text{MAE} = \frac{1}{\varepsilon}\sum_{\delta=1}^{\varepsilon} |y_{\delta} – \hat{y}_{\delta}| \times 100\% $$
$$ \text{MSE} = \frac{1}{\varepsilon}\sum_{\delta=1}^{\varepsilon} (y_{\delta} – \hat{y}_{\delta})^2 \times 100\% $$
$$ R^2 = 1 – \frac{\sum_{\delta=1}^{\varepsilon} (\hat{y}_{\delta} – y_{\delta})^2}{\sum_{\delta=1}^{\varepsilon} (\bar{y}_{\delta} – y_{\delta})^2} $$
Experimental Design
We use the five operating conditions from Table 1. Training/testing battery split is 1:1. Table 3 lists the assigned battery IDs for each condition.
| Condition | Condition Code | Training Batteries | Testing Batteries |
|---|---|---|---|
| 1 | NCA-CY45-0.5/1 | #43,#44,#45,#46,#47,#48,#51,#52,#53,#54,#65,#66 | #49,#50,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64 |
| 2 | NCA-CY25-1/1 | #1,#3,#9,#8 | #2,#4,#5,#7 |
| 3 | NCM-CY35-0.5/1 | #52,#53 | #54,#55 |
| 4 | NCM-CY45-0.5/1 | #1,#2,#6,#7,#12,#13,#16,#17,#18,#19,#21,#23,#24,#27 | #3,#4,#5,#8,#9,#11,#10,#14,#15,#20,#22,#25,#26,#28 |
| 5 | NCA+NCM-CY25-0.5/4 | #79 | #78 |
Selection of Optimal CV Feature
We compare four candidate two-stage feature combinations: \([T_{cv}, U_{sha}, U_r]\), \([t_{44}, U_{sha}, U_r]\), \([t_{66}, U_{sha}, U_r]\), and \([t_{88}, U_{sha}, U_r]\). For each, we optimize hyperparameters via random search (see Table 4).
| Feature Combination | \(E_n\) | \(F_{max}\) | \(D_{max}\) | \(L_{min}\) |
|---|---|---|---|---|
| \([T_{cv},U_{sha},U_r]\) | 20 | auto | 5 | 4 |
| \([t_{44},U_{sha},U_r]\) | 10 | auto | 25 | 5 |
| \([t_{66},U_{sha},U_r]\) | 50 | auto | 5 | 7 |
| \([t_{88},U_{sha},U_r]\) | 10 | sqrt | 20 | 7 |
SOH estimation results across all five conditions are summarized in Table 5. The combination \([t_{66}, U_{sha}, U_r]\) yields the best overall performance: average MAE = 0.66%, average MSE = 0.85%, and average R² = 0.97. Hence, we adopt \(t_{66}\) as the CV feature.
| Condition | \([T_{cv},U_{sha},U_r]\) | \([t_{44},U_{sha},U_r]\) | \([t_{66},U_{sha},U_r]\) | \([t_{88},U_{sha},U_r]\) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MAE(%) | MSE(%) | R² | MAE(%) | MSE(%) | R² | MAE(%) | MSE(%) | R² | MAE(%) | MSE(%) | R² | |
| 1 | 0.87 | 1.31 | 0.96 | 0.73 | 0.88 | 0.97 | 0.74 | 0.89 | 0.97 | 0.65 | 0.68 | 0.98 |
| 2 | 1.21 | 2.44 | 0.92 | 1.14 | 2.20 | 0.93 | 1.10 | 1.90 | 0.94 | 1.76 | 5.43 | 0.83 |
| 3 | 0.85 | 1.17 | 0.95 | 0.65 | 0.69 | 0.97 | 0.45 | 0.42 | 0.98 | 0.51 | 0.51 | 0.98 |
| 4 | 0.65 | 0.79 | 0.98 | 0.70 | 0.98 | 0.97 | 0.60 | 0.75 | 0.98 | 0.59 | 0.67 | 0.98 |
| 5 | 0.38 | 0.29 | 0.99 | 0.44 | 0.38 | 0.99 | 0.39 | 0.29 | 0.99 | 0.58 | 0.51 | 0.99 |
| Average | 0.79 | 1.18 | 0.96 | 0.73 | 1.04 | 0.97 | 0.66 | 0.85 | 0.97 | 0.81 | 1.55 | 0.95 |
Comparison with Single-Stage Feature Combinations
We compare our proposed two-stage combination \([t_{66},U_{sha},U_r]\) with two single-stage feature sets: (1) relaxation-stage features \([U_{var}, U’_{skr}, U_{max}]\) from literature, and (2) CV-stage features \([t_{43}, t_{61}, t_{65}]\) from another study. Hyperparameters for each model are optimized via random search, as shown in Table 6.
| Feature Combination | \(E_n\) | \(F_{max}\) | \(D_{max}\) | \(L_{min}\) |
|---|---|---|---|---|
| \([U_{var},U’_{skr},U_{max}]\) | 40 | auto | 5 | 4 |
| \([t_{43},t_{61},t_{65}]\) | 60 | sqrt | 20 | 8 |
Table 7 presents the numerical results for all five conditions. Our two-stage fusion method consistently outperforms both single-stage approaches. The average MAE (0.66%) and MSE (0.85%) are significantly lower than those of relaxation-only (1.08%, 2.80%) and CV-only (1.23%, 3.56%). The average R² of 0.97 is the highest.
| Condition | \([t_{66},U_{sha},U_r]\) (proposed) | \([U_{var},U’_{skr},U_{max}]\) (relaxation only) | \([t_{43},t_{61},t_{65}]\) (CV only) | ||||||
|---|---|---|---|---|---|---|---|---|---|
| MAE(%) | MSE(%) | R² | MAE(%) | MSE(%) | R² | MAE(%) | MSE(%) | R² | |
| 1 | 0.74 | 0.89 | 0.97 | 1.01 | 1.77 | 0.95 | 1.52 | 4.25 | 0.89 |
| 2 | 1.10 | 1.90 | 0.94 | 2.44 | 10.16 | 0.69 | 2.54 | 10.92 | 0.66 |
| 3 | 0.45 | 0.42 | 0.98 | 0.47 | 0.35 | 0.98 | 0.84 | 1.02 | 0.96 |
| 4 | 0.61 | 0.75 | 0.98 | 0.62 | 0.61 | 0.98 | 0.69 | 0.88 | 0.98 |
| 5 | 0.39 | 0.29 | 0.99 | 0.89 | 1.22 | 0.99 | 0.58 | 0.72 | 0.99 |
| Average | 0.66 | 0.85 | 0.97 | 1.08 | 2.80 | 0.92 | 1.23 | 3.56 | 0.90 |
Visual inspection (scatter plots not shown here) confirms that the proposed estimates lie closer to the ideal line, especially at lower SOH values where single-stage methods often deviate. The superiority is consistent across all three battery chemistries and all operating conditions.
Discussion
The success of our two-stage fusion lies in the complementary nature of the CV and relaxation features. The CV interval duration captures the internal resistance growth and polarization changes during the constant voltage charging, while the relaxation Shannon entropy and maximum curvature reflect the thermodynamic relaxation processes after charging stops. Their combination provides a more complete picture of battery aging. Moreover, since both features are derived from the constant voltage and relaxation stages, they are immune to the uncertainty of charging start points that plagues CC-based features. This makes the method highly practical for real battery energy storage system applications where batteries are often partially charged.

Our approach also reduces data storage: only the duration of one CV interval and two statistical features from the relaxation curve are needed, without requiring the full current profiles. This is beneficial for embedded implementations in battery management systems of battery energy storage systems.
Conclusion
We have presented a practical and accurate SOH estimation method for lithium-ion batteries in battery energy storage systems by fusing health features from the constant voltage charging stage and the relaxation stage. The feature combination \(t_{66}\) (duration of the last 1/6 current interval during CV) with relaxation Shannon entropy and maximum curvature achieves an average MAE of 0.66%, MSE of 0.85%, and R² of 0.97 across diverse chemistries and operating conditions—significantly outperforming single-stage alternatives. The method is insensitive to charging start-point uncertainty and requires minimal data storage, making it well-suited for deployment in real-world battery energy storage system monitoring. Future work will explore deep learning models (e.g., LSTM or attention-based architectures) to further enhance accuracy while retaining the two-stage feature foundation.
