A Convolutional Neural Network Approach for Estimation of Li-Ion Battery State of Health from Charge Proﬁles

: Intelligent and pragmatic state-of-health (SOH) estimation is critical for the safe and reliable operation of Li-ion batteries, which recently have become ubiquitous for applications such as electriﬁed vehicles, smart grids, smartphones, as well as manned and unmanned aerial vehicles. This paper introduces a convolutional neural network (CNN)-based framework for directly estimating SOH from voltage, current, and temperature measured while the battery is charging. The CNN is trained with data from as many as 28 cells, which were aged at two temperatures using randomized usage proﬁles. CNNs with between 1 and 6 layers and between 32 and 256 neurons were investigated, and the training data was augmented with noise and error as well to improve accuracy. Importantly, the algorithm was validated for partial charges, as would be common for many applications. Full charges starting between 0 and 95% SOC as well as for multiple ranges ending at less than 100% SOC were tested. The proposed CNN SOH estimation framework achieved a mean average error (MAE) as low as 0.8% over the life of the battery, and still achieved a reasonable MAE of 1.6% when a very small charge window of 85% to 97% SOC was used. While the CNN algorithm is shown to estimate SOH very accurately with partial charge data and two temperatures, further studies could also investigate a wider temperature range and multiple different charge currents or constant power charging.


Introduction
Like most things, Li-ion batteries age with time; a process underpinned by the degradation of electrode materials, loss of lithium in active carbon, lithium metal plating and chemical decomposition, to name a few. If aging is not correctly monitored, an accurate estimate of available battery capacity is not possible, which greatly compromises a battery's safety and reliability.
Battery aging is typically determined through a state-of-health (SOH) estimation which has a value ranging between 0 and 100%. For this work, SOH is defined as the ratio of aged and new capacity of the battery. In some industries, such as the automotive industry, the standard for end of life of a Li-ion battery is when SOH = 80% is reached [1]. SOH is not an observable quantity and is a highly nonlinear entity, dependent, in large part, on the volatility of the loading profiles, ambient temperature, depth of discharge (DOD) and self-discharge, to name a few [2]. Therefore, an accurate estimate of SOH is typically a tedious computation.
It is difficult for a battery model to capture all the underlying electrochemical processes and provide accurate estimates of SOH. The benefit of data-driven methods is that they rely mainly on aging data, therefore they do not require knowledge of these underlying processes, and in some cases, they also avoid using a physical model. In [3], the authors 1.
A CNN is used to map raw battery measurements directly to SOH without the use of any physical or electrochemical models. The performance of the CNN is not limited by knowledge of the underlying electrochemical processes. Physical or electrochemical models are more challenging to create because they must include complex processes such as self-discharge, solid lithium concentrations, etc.

2.
A data augmentation technique is used to generate the training data used as inputs to the CNN. This not only makes the CNN more robust against measurement noise, offsets and gains but also increases the CNN's SOH estimation accuracy. 3.
To further increase the CNN's practicality in real-world applications, it is trained to estimate SOH over partial charge profiles having varying ranges of state of charge (SOC). This is an important feature increasing the practicality of this method considerably.
The second section of the paper focuses on the theoretical underpinnings of the CNN algorithm and the third section discusses the randomized usage aging dataset obtained from the NASA repository [21] as well as the CNN model development using this dataset. The fourth section discusses the results.

Background and Theory of Convolutional Neural Networks for SOH Estimation
Lately, the surge of interest in artificial intelligence (AI) has been primarily underpinned by the numerous advancements achieved in deep learning algorithms [22][23][24]. Although traditional machine learning methods have been studied for decades, advancements in computing power and an abundance of real-world data have allowed for much larger or deeper architectures. These new, deeper models have allowed for remarkable achievements within the field of artificial intelligence [25][26][27][28][29] as well as in other fields [30][31][32][33].
Convolutional neural networks, shown in Figure 1, are particularly good at mapping a set of measured quantities to a desired output. The CNNs used in this work convolve filters over the input, passing the result to the next layer instead of fully interconnected adjacent layers as is typically done in fully connected neural networks. Convolving filters over the two-dimensional dataset allow these networks to benefit from shared weights and an invariance to local distortions [24]. The CNN's filters look at data from multiple time steps during a convolution operation which includes the data point at the present time step as well as some amount of historical data points. Because of shared weights, CNNs can be given a large amount of input data without size increasing as much as for a fully connected neural network. Once CNNs are trained offline, they can offer fast computational speeds on board a mobile device or vehicle, since they are formulated by a series of convolution and matrix multiplication operations which can be computed in parallel. The typical dataset used for training and validation in this work is given by D = {(Ψ(ξ 1 ), SOH * (ξ 1 )), . . . , (Ψ(ξ Ξ ), SOH * (ξ Ξ ))}, where Ψ(ξ) and SOH * (ξ) are the array of input data and the ground-truth state-of-health values, respectively, for each charge profile, ξ. The input charge profiles, Ψ(ξ) ∈ R N×M , which will be discussed further in the next section, can be composed of battery measurements such as current, voltage and temperature and, in the case of partial charge profiles, they also include the SOC values. The kernel, , is used in each layer of the CNN and has height and width . The kernels are convolved over the input array of height −1 and width −1 . For a more formal description, consider the element ( ) at location ( , ) in the kth feature map of layer l for charge profile , given as follows; In the above composite function, m is the feature map in layer l − 1, is the bias for feature map k in layer l and is the value of the kernel at the (c, r) location. (•) is a subsampling function, called max-pooling, which gives the maximum value of a perceived subset s of a feature map, where s ⊆ h lk .
The nonlinearity used in this work, η, is referred to as the rectified linear unit (ReLU). This is used in this work due to its simplicity and ease of implementation in real time. The last few layers of a CNN, as observed in Figure 1, are fully connected layers, formally described as follows; where β (ξ) = (ξ), for l = L (4) and where αβ denotes the weight connection between neuron α in the (l − 1)th layer and neuron β in the lth layer, β and ℎ β are the bias and activation function at layer l, respectively. The total number of layers in the CNN is given by L. To determine the SOH estimation performance of the CNN for a particular charge curve , the estimated state of The kernel, w lkm , is used in each layer of the CNN and has height C l and width R l . The kernels are convolved over the input array of height N l−1 and width M l−1 . For a more formal description, consider the element x lk ij (ξ) at location (k, j) in the kth feature map of layer l for charge profile ξ, given as follows; where In the above composite function, m is the feature map in layer l − 1, b lk is the bias for feature map k in layer l and w lkm rc is the value of the kernel at the (c, r) location. S(·) is a subsampling function, called max-pooling, which gives the maximum value of a perceived subset s of a feature map, where s ⊆ h lk .
The nonlinearity used in this work, η, is referred to as the rectified linear unit (ReLU). This is used in this work due to its simplicity and ease of implementation in real time. The last few layers of a CNN, as observed in Figure 1, are fully connected layers, formally described as follows; where g l β (ξ) = SOH(ξ), for l = L and where w l αβ denotes the weight connection between neuron α in the (l − 1)th layer and neuron β in the lth layer, b l β and h l β are the bias and activation function at layer l, respectively. The total number of layers in the CNN is given by L. To determine the SOH estimation performance of the CNN for a particular charge curve ξ, the estimated state of health, SOH(ξ), is compared to the state-of-health ground-truth value, SOH * (ξ), resulting in an error value. The loss function is simply the mean squared error computed from all the individual errors, as follows; where Ξ is the total number of charge curves in the training dataset. One full training epoch, , describes a single cycle of one forward pass and one backward pass. In this work, training does not cease till a specified threshold criteria of loss is attained. In addition, the gradient of the loss function with respect to the weights is used to update the network weights in an optimization method called Adam [34]. This is given in the following composite function; where γ 1 and γ 2 are decay rates set to 0.9 and 0.999, respectively, ρ = 10 −5 is the learning rate and κ is a constant term set to 10 −8 . The network weights at the present training epoch are given by w . During the backward pass, the network self-learns its network weights and biases, a process referred to as backpropagation, which is a remarkable difference to other methods that demand time-consuming hand-engineered battery models and parameter identification. Validation, which in this paper refers to what is commonly considered testing, is performed on datasets which the CNN has never seen during training. In this paper, state-of-health estimation performance was evaluated with various metrics. These include mean absolute error (MAE), root mean squared error (RMS), standard deviation of the errors (STDDEV) and the maximum error (MAX).
The CNN models discussed in this paper were created with TensorFlow, a machine learning framework. To expedite the training process two NVIDIA Graphical Processing Units (GPUs) were used, a TITAN X and a GeFORCE GTX 1080TI.

Randomized Battery Usage Datasets
The dataset used in this work is the Randomized Battery Usage Dataset obtained from the NASA Prognostics Center of Excellence [21]. The parameters of most of these datasets are shown in Table 1. The 28 LG Chem 18,650 Li-ion cells are aged by undergoing a randomized load; ranging between 0.5 A and 5 A for some datasets and −4.5 A to 4.5 A for others, often at different ambient temperatures. Each random walk step lasts for about 5 min. Random usage serves as a better representation of real-world loading profiles where vehicle acceleration and deceleration are unpredictable. Reference charge profiles were conducted roughly every 5 days to characterize the cell's aging. These were sampled at 0.1 Hz, although this was not always consistent, and, as is typically performed, the charge curves in these characterization steps included a constant current (CC) and constant voltage (CV) segment. The CC segment of the charge profile was set to 2 A and typically consisted of the first 60 to 70% of the charge.
This work considers the fixed and partial SOC ranges where both the CC and the CV segments of the charge curves are utilized. For most of the 28 aging datasets in this repository, the cells are aged to at least SOH equal to 80% and in some cases to SOH less than 40%. An example of one aging dataset is shown in Figure 2, where, as the battery aged, the relationship of charging voltage to amp hours of charge added to the battery changed due to reduced capacity and increased impedance of the battery. This work considers the fixed and partial SOC ranges where both the CC and the CV segments of the charge curves are utilized. For most of the 28 aging datasets in this repository, the cells are aged to at least SOH equal to 80% and in some cases to SOH less than 40%. An example of one aging dataset is shown in Figure 2, where, as the battery aged, the relationship of charging voltage to amp hours of charge added to the battery changed due to reduced capacity and increased impedance of the battery.

Data Processing
The entire process from data parsing to training and validation of the CNN are represented in a flowchart in Figure 3. The following was performed for every one of the 28 datasets of the repository. First, the reference charge profiles are extracted from the raw data. For example, dataset 1 of the 28 datasets, contains 40 reference charge profiles, spanning the entire lifetime of the aged battery cell. These are extracted and saved for the preprocessing step. Second, in the preprocessing step, the current voltage and temperature sequences of dataset 1 are resampled using linear interpolation at 0.1 Hz to ensure good discretization. The three signal sequences are concatenated together to form an array having 3 columns and 256 rows. Therefore, as shown in Figure 1, an input reference profile is defined as ( ) ∈ ℝ × where N = 256 and M = 3. Although we truncated the datasets to the first 256 time steps, the reference profiles were typically at least 1000 time steps long. For the case of the partial reference profiles, not only were the first 256 time steps selected but different segments of 256 time steps were also chosen throughout the full reference profile.

Data Processing
The entire process from data parsing to training and validation of the CNN are represented in a flowchart in Figure 3. The following was performed for every one of the 28 datasets of the repository. First, the reference charge profiles are extracted from the raw data. For example, dataset 1 of the 28 datasets, contains 40 reference charge profiles, spanning the entire lifetime of the aged battery cell. These are extracted and saved for the preprocessing step. Second, in the preprocessing step, the current voltage and temperature sequences of dataset 1 are resampled using linear interpolation at 0.1 Hz to ensure good discretization. The three signal sequences are concatenated together to form an array having 3 columns and 256 rows. Therefore, as shown in Figure 1, an input reference profile is defined as Ψ(ξ) ∈ R N×M where N = 256 and M = 3. Although we truncated the datasets to the first 256 time steps, the reference profiles were typically at least 1000 time steps long. For the case of the partial reference profiles, not only were the first 256 time steps selected but different segments of 256 time steps were also chosen throughout the full reference profile.
The number of rows is typically longer than 256, but we truncated the number of rows so that all reference profiles had the same duration in time. This was done to increase data impartiality; in other words, to avoid biasing the model towards reference profiles which might have had more time steps or which had a longer time span. The reference profiles for one dataset were then all concatenated depthwise to form a three-dimensional array. For example, in the case of dataset 1 containing 40 recorded reference profiles, the resulting dimensions after processing would be 256 × 3 × 40.
The data points representing current during charging were multiplied by the sampling period of 10 s or 0.002778 h which were then summed to get the resulting capacity. This calculation was performed whenever the reference profiles were observed which was roughly every 5 days. To get the ground-truth SOH, the Ah calculation from all the reference profiles was divided by the Ah calculation conducted for the first observed reference profile, before any aging was performed.  Each of the datasets are constructed by extracting the reference charge profiles from the raw data. After preprocessing, the 28 datasets are split into train and testing datasets. The train set is then augmented as described in Section 3 before training begins. Please refer to text for more details.
The number of rows is typically longer than 256, but we truncated the number of rows so that all reference profiles had the same duration in time. This was done to increase data impartiality; in other words, to avoid biasing the model towards reference profiles which might have had more time steps or which had a longer time span. The reference profiles for one dataset were then all concatenated depthwise to form a three-dimensional array. For example, in the case of dataset 1 containing 40 recorded reference profiles, the resulting dimensions after processing would be 256 × 3 × 40.
The data points representing current during charging were multiplied by the sampling period of 10 s or 0.002778 h which were then summed to get the resulting capacity. This calculation was performed whenever the reference profiles were observed which was roughly every 5 days. To get the ground-truth SOH, the Ah calculation from all the reference profiles was divided by the Ah calculation conducted for the first observed reference profile, before any aging was performed.

Training Data Augmentation
The convolutional neural network is made more robust against noise, offsets and gains existent in real-world measurement devices by augmenting the training data. In this paper, a novel data augmentation technique was used by injecting Gaussian noise into the measured battery signals. Specifically, Gaussian noise with 0 mean and a standard deviation of 1-4% was injected into the voltage, current and temperature measurements. Moreover, to provide robustness against offsets and gains inherent in battery measurement devices, an offset was applied to all measurement signals and a gain was applied only to the current measurement since current measurements are more susceptible to gains. An offset of up to ±150 mA and a gain of up to ±3% was applied to the current measurements, an offset of up to ±5 mV was applied to the voltage measurement and an offset of up to ±5 °C was applied to the temperature measurement. Alternate copies of the training data were created with varying levels of noise, offsets and gains within the limits described above. Each of the datasets are constructed by extracting the reference charge profiles from the raw data. After preprocessing, the 28 datasets are split into train and testing datasets. The train set is then augmented as described in Section 3 before training begins. Please refer to text for more details.

Training Data Augmentation
The convolutional neural network is made more robust against noise, offsets and gains existent in real-world measurement devices by augmenting the training data. In this paper, a novel data augmentation technique was used by injecting Gaussian noise into the measured battery signals. Specifically, Gaussian noise with 0 mean and a standard deviation of 1-4% was injected into the voltage, current and temperature measurements. Moreover, to provide robustness against offsets and gains inherent in battery measurement devices, an offset was applied to all measurement signals and a gain was applied only to the current measurement since current measurements are more susceptible to gains. An offset of up to ±150 mA and a gain of up to ±3% was applied to the current measurements, an offset of up to ±5 mV was applied to the voltage measurement and an offset of up to ±5 • C was applied to the temperature measurement. Alternate copies of the training data were created with varying levels of noise, offsets and gains within the limits described above.
Before training and during the data augmentation step, up to 80 variants were created for each original dataset which would mean that 2240 datasets were used for the training. The noise, offset, and gain values used in the paper are similar to or are somewhat worse than those values seen for typical automotive sensors [35][36][37]. For example, a commercial grade current sensor may be rated for 0.5% noise on the output. A larger noise magnitude was selected in this paper than that inherent in many of these sensors for two reasons: (1) to help with the training of the network and reduce overfitting as well as to increase estimation accuracy; and (2) to emulate noise which may be injected into the system due to noisy power electronics or other EMI and EMC emitting equipment in an actual vehicle.
This data augmentation technique is inspired by a method sometimes referred to as jittering [38,39] which not only makes the model more robust against measurement error but it also leads to higher estimation accuracies and reduces overfitting. After training on this augmented data, we also tested the model on augmented test data which was intentionally injected with signal error to test the CNN's robustness.

State of Health Estimation Results and Discussion
The state-of-health estimation performance of the deep convolutional networks are outlined in this section. As previously mentioned, this work used charge profiles which included both fixed (beginning at SOC = 0%) and partial SOC ranges (beginning at SOC > 0%). There are trade-offs which need to be made in either case and these will be discussed in the following two sections. The results obtained over full reference charge profiles serve as a good baseline to which the performance over partial charge profiles can be compared. The networks discussed in this section used a learning rate of 1 × 10 −5 .

State-of-Health Estimation Using Fixed Charge Profiles
Training was conducted on up to 26 of the aging datasets and validation was performed on 1 or 2 datasets, depending on the tests being performed. The validation datasets are never seen by the CNN during the training process. The time required to train the CNNs used to obtain the results in this subsection was 4-9 h, depending on their size and depth.
The CNN was first validated on two aging datasets in the NASA repository, referred to as dataset RW4, recorded at 25 • C, and RW23, recorded at 40 • C. This CNN is composed of 6 convolution layers and 2 fully connected layers (FC). The results, shown in Figure 4 and in Table 2, point to an MAE of 1.5% and 1.2% for the 25 • C and 40 • C, respectively. The network is trained for up to 175,000 epochs. Mean absolute error is calculated as follows, where n is the total number of discrete datapoints being evaluated.  The CNN's performance over additional test cases are shown in Table 3, where the footnotes indicate the architecture of the network. For example, L1: 32@(32,1), indicates that the first layer is a convolutional layer having 32 filters with height 32 and width 1. In addition to the performance metrics, the number of parameters representing the networks used for each of the test cases is shown. For most of these tests, training was stopped at 100,000 epochs to maintain testing objectivity. The first of such tests evaluates the CNN's accuracy for inputs which include solely voltage as compared to inputs which include battery current, voltage and temperature. The results show that the error when using only voltage as an input is satisfactory with an MAE and MAX of 1.5% and 3.9% respectively. However, the MAE and the MAX are reduced by 33% and 44%, respectively, when using all three input signals. Therefore, all three inputs are critical for minimizing estimation error.   that the first layer is a convolutional layer having 32 filters with height 32 and width 1. In addition to the performance metrics, the number of parameters representing the networks used for each of the test cases is shown. For most of these tests, training was stopped at 100,000 epochs to maintain testing objectivity. The first of such tests evaluates the CNN's accuracy for inputs which include solely voltage as compared to inputs which include battery current, voltage and temperature. The results show that the error when using only voltage as an input is satisfactory with an MAE and MAX of 1.5% and 3.9% respectively. However, the MAE and the MAX are reduced by 33% and 44%, respectively, when using all three input signals. Therefore, all three inputs are critical for minimizing estimation error. As described in Equation (1) of Section 2, max pooling, S(·), is performed after a convolutional layer to subsample the layer activations. Although this is a layer that is often used for other applications, its efficacy in SOH estimation applications was initially unknown. Therefore, to better understand this, a CNN with pooling layers was compared to a second CNN with no pooling layers. It was found that a CNN with no pooling offered an MAE of 1.3% however a CNN with pooling had an MAE of 1.0%. Therefore, pooling improves the accuracy of the CNN for SOH estimation by about 23%.
In the third test, we investigated if augmented training data described in section III, affects the estimation accuracy of the CNN. This was performed by training two identical CNNs with identical architectures over augmented and unaugmented datasets. Augmentation describes the injection of Gaussian random noise as well as offsets and gains into the training data, as described in section III. Using an unaugmented training dataset, an MAE and MAX of 2.4% and 4.2% was obtained, while when using an augmented training dataset, an MAE and MAX of 1.2% and 3.6% was obtained. Therefore, exposing the CNN to augmented training datasets offers good performance gains with a reduction in MAE and MAX of 50% and 14%, respectively.
In the final test case, the estimation performance was examined for a much smaller network since on-board applications often cannot allocate a large amount of computation time to the SOH algorithm. Therefore, a network with only two convolutional layers was used to estimate SOH. When trained with augmented training data, the MAE and MAX achieved by this small CNN over a validation dataset were 1.9% and 6.1%, respectively. Although this network had adequate performance, further tests were conducted to assess the impact of network depth on the CNN. In Figure 5, the accuracy of convolutional neural networks at estimating SOH is recorded, first, as a function of network depth (number of layers) and, second, as a function of the amount of training data used during the training process. Clearly, deeper networks achieve increased estimation accuracy since going from 1 convolutional layer to 6 reduced the MAE by more than 60%.
In Figure 5b, the estimation accuracy over a validation dataset examined as a function of the amount of training is reduced. However, the argument to use more than 13 or 21 datasets during training becomes hard to substantiate given the diminishing improve-ment in accuracy. Models trained on battery measurements generated in the lab can be very sensitive to measurement noise, offsets and gains typically present in real world scenarios. Therefore, we tested the robustness of the CNN by using data that was intentionally augmented. In Figure 6 and in Table 4, the results for SOH estimation for augmented validation data are shown. Specifically, normally distributed random noise with mean 0 and standard deviation of 1%, 1.5% and 5% was added to the voltage, current and temperature measurements, respectively. An offset of 5 mV, 50 mA and 2 C was added to the voltage, current and temperature measurements, respectively. A gain of 2% was only applied to the current measurements. The CNN showed good robustness since performance over the augmented validation dataset resulted in a slightly higher MAE of 1.7%.
CNNs with identical architectures over augmented and unaugmented datasets. Augm tation describes the injection of Gaussian random noise as well as offsets and gains the training data, as described in section III. Using an unaugmented training dataset MAE and MAX of 2.4% and 4.2% was obtained, while when using an augmented train dataset, an MAE and MAX of 1.2% and 3.6% was obtained. Therefore, exposing the C to augmented training datasets offers good performance gains with a reduction in M and MAX of 50% and 14%, respectively.
In the final test case, the estimation performance was examined for a much sma network since on-board applications often cannot allocate a large amount of computa time to the SOH algorithm. Therefore, a network with only two convolutional layers used to estimate SOH. When trained with augmented training data, the MAE and M achieved by this small CNN over a validation dataset were 1.9% and 6.1%, respectiv Although this network had adequate performance, further tests were conducted to as the impact of network depth on the CNN. In Figure 5, the accuracy of convolutional ne networks at estimating SOH is recorded, first, as a function of network depth (numbe layers) and, second, as a function of the amount of training data used during the train process. Clearly, deeper networks achieve increased estimation accuracy since going fr 1 convolutional layer to 6 reduced the MAE by more than 60%. In Figure 5b, the estimation accuracy over a validation dataset examined as a func of the amount of training is reduced. However, the argument to use more than 13 o datasets during training becomes hard to substantiate given the diminishing impro ment in accuracy. Models trained on battery measurements generated in the lab can very sensitive to measurement noise, offsets and gains typically present in real world narios. Therefore, we tested the robustness of the CNN by using data that was intent ally augmented. In Figure 6 and in Table 4, the results for SOH estimation for augmen validation data are shown. Specifically, normally distributed random noise with mea and standard deviation of 1%, 1.5% and 5% was added to the voltage, current and t perature measurements, respectively. An offset of 5 mV, 50 mA and 2 C was added to voltage, current and temperature measurements, respectively. A gain of 2% was only plied to the current measurements. The CNN showed good robustness since performa over the augmented validation dataset resulted in a slightly higher MAE of 1.7%.    Table 4 for detailed results.

State-of-Health Estimation using Partial Charge Profiles
Although the CNN achieved great performance in the previous subsection, the charge profiles used were fixed, such that the SOC ranged between 0% and about 60%. As described above, batteries are typically never fully discharged down to SOC = 0%. Therefore, to increase the practicality of this method, the CNN was trained over partial charge curves. However, differences between charge curves having different SOC ranges around the same SOH value can be subtle. Therefore, it becomes necessary to include something other than voltage, current and temperature as an input so that these subtle differences can be recognized by the CNN. Hence, SOC, which is assumed to be continuously monitored by an electric vehicle, for example, is included as an input to the CNN. The reference profiles ranging from SOC = 0% to SOC = 100% are typically longer than 1000 time steps, making it possible to select many different 256-length chunks to train on. Since the profiles  Table 4 for detailed results.

State-of-Health Estimation Using Partial Charge Profiles
Although the CNN achieved great performance in the previous subsection, the charge profiles used were fixed, such that the SOC ranged between 0% and about 60%. As described above, batteries are typically never fully discharged down to SOC = 0%. Therefore, to increase the practicality of this method, the CNN was trained over partial charge curves. However, differences between charge curves having different SOC ranges around the same SOH value can be subtle. Therefore, it becomes necessary to include something other than voltage, current and temperature as an input so that these subtle differences can be recognized by the CNN. Hence, SOC, which is assumed to be continuously monitored by an electric vehicle, for example, is included as an input to the CNN. The reference profiles ranging from SOC = 0% to SOC = 100% are typically longer than 1000 time steps, making it possible to select many different 256-length chunks to train on. Since the profiles were sampled once every 10 s, this meant that the length of each partial reference profile was about 43 min. It is important to note that in all the results of this subsection, all the stated ranges of the partial profiles were ranges of the new battery cell before it had aged. Although subsequent aged partial reference profiles started at the same SOC, they ended at a slightly lower state of charge. This can also be observed from the plots in Figures 7b and 8b. In Figure 7 and in Figure 8, the SOH was estimated by the CNN using partial charge curves. In Figure 7, the SOC range of 30% to about 85% was used while in Figure 8 an SOC range of 60% to about 92% was utilized. Table 5 shows further results from other partial charge profiles having different SOC ranges. The SOC in these validation datasets was assumed to have a mean error of under 4% to simulate a real-world scenario. Although not overwhelmingly obvious, the results show that the larger SOC ranges generally resulted in better SOH estimation results. This is most likely attributed to the longer ranges of data which reveal more of the battery's aging signature. However, the smaller SOC range of 85% to 97% achieved an MAE and a MAX of 1.6% and 3.5% which was nevertheless still good performance.  In Figure 7 and in Figure 8, the SOH was estimated by the CNN using partial charge curves. In Figure 7, the SOC range of 30% to about 85% was used while in Figure 8 an SOC range of 60% to about 92% was utilized. Table 5 shows further results from other partial charge profiles having different SOC ranges. The SOC in these validation datasets was assumed to have a mean error of under 4% to simulate a real-world scenario. Although not overwhelmingly obvious, the results show that the larger SOC ranges generally resulted in better SOH estimation results. This is most likely attributed to the longer ranges of data which reveal more of the battery's aging signature. However, the smaller SOC range of 85% to 97% achieved an MAE and a MAX of 1.6% and 3.5% which was nevertheless still good performance.  In Figures 7 and 8, the SOH was estimated by the CNN using partial charge curves. In Figure 7, the SOC range of 30% to about 85% was used while in Figure 8 an SOC range of 60% to about 92% was utilized. Table 5 shows further results from other partial charge profiles having different SOC ranges. The SOC in these validation datasets was assumed to have a mean error of under 4% to simulate a real-world scenario. Although not overwhelmingly obvious, the results show that the larger SOC ranges generally resulted in better SOH estimation results. This is most likely attributed to the longer ranges of data which reveal more of the battery's aging signature. However, the smaller SOC range of 85% to 97% achieved an MAE and a MAX of 1.6% and 3.5% which was nevertheless still good performance. We performed SOH estimation with partial charge curves that sweep initial SOC from 0% to as high as 96% and the results are shown in Figure 9. The charge profiles begin at different SOC values, however, as mentioned above, they all have the same length of time of about 43 min. Interestingly, charge profiles beginning between an SOC of 5% and 20% and between an SOC of 50% and 70% had the lowest MAE and MAX error values. Those starting between an SOC of 30% and 40% had the highest. This can be attributed to the fact that the rate of change of the voltage is typically lower at an SOC of 30% to 40% and therefore this region has relatively fewer distinctive ageing features. Nevertheless, as can be observed from Figure 9, any 43 min window of data collected during a charge event, regardless of the initial SOC, can be used to achieve competitive SOH estimation accuracy. Those starting between an SOC of 30% and 40% had the highest. This can be attributed to the fact that the rate of change of the voltage is typically lower at an SOC of 30% to 40% and therefore this region has relatively fewer distinctive ageing features. Nevertheless, as can be observed from Figure 9, any 43 min window of data collected during a charge event, regardless of the initial SOC, can be used to achieve competitive SOH estimation accuracy. For the results in Figure 9, there are 95 trained CNNs, one for each value of starting SOC. While this allows the SOH to be estimated with charge data starting at any SOC value, storing the parameters for all 95 CNNs would require an excessive amount of memory in a real-time application. The following design approach is therefore recommended: (1) Train CNNs with a wide range of starting SOC values, as shown in Figure 9; (2) Select the most accurate CNN in several different SOC ranges; (3) Implement the selected CNNs in the real time processor and update SOH whenever a charge with data in the corresponding SOC range is performed. As an example, three CNNs are marked in Figure 9 which are the most accurate in the nearby SOC range, those starting at 13% SOC, 63% SOC, and 83% SOC. Example charging data for these different SOC ranges is plotted in Figure 10 below, showing that as the battery aged, the current response during charging changed significantly, providing an excellent indicator of the SOH. In the real-time application, SOH would then be updated whenever a charge was performed that covered the 13 to 75%, 63 to 90%, or 83 to 95% SOC range. This methodology allows for more regular and accurate updating of the SOH estimate without requiring an excessive amount of memory for CNN parameters. For the results in Figure 9, there are 95 trained CNNs, one for each value of starting SOC. While this allows the SOH to be estimated with charge data starting at any SOC value, storing the parameters for all 95 CNNs would require an excessive amount of memory in a real-time application. The following design approach is therefore recommended: (1) Train CNNs with a wide range of starting SOC values, as shown in Figure 9; (2) Select the most accurate CNN in several different SOC ranges; (3) Implement the selected CNNs in the real time processor and update SOH whenever a charge with data in the corresponding SOC range is performed. As an example, three CNNs are marked in Figure 9 which are the most accurate in the nearby SOC range, those starting at 13% SOC, 63% SOC, and 83% SOC. Example charging data for these different SOC ranges is plotted in Figure 10 below, showing that as the battery aged, the current response during charging changed significantly, providing an excellent indicator of the SOH. In the real-time application, SOH would then be updated whenever a charge was performed that covered the 13 to 75%, 63 to 90%, or 83 to 95% SOC range. This methodology allows for more regular and accurate updating of the SOH estimate without requiring an excessive amount of memory for CNN parameters. (a) 13% to around 75% SOC (b) 63% to around 90% SOC (c) 83% to around 95% SOC Figure 10. Examples of voltage, current, and SOC time domain charging measurements used for training SOH algorithm. Each set of partial SOC charge data is 2560 s long, the input data length for the CNN.

Conclusions
This paper introduced a deep learning technique for state-of-health estimation. Specifically, convolutional neural networks were used to extract ageing signatures from reference charge profiles and, in turn, estimate SOH. Time domain voltage, current, and temperature measurements were used as inputs to the CNN, and accuracy was found to be improved when data pooling was used and when the data was augmented with some noise and error to make it more representative of data from a real-world system. The use of more convolutional layers, up to six, was shown to reduce error. Little benefit was found for increasing the number of cells in the training dataset beyond 13, giving insight into how much battery testing is necessary to create an accurate machine learning-based SOH estimation algorithm. It was also demonstrated that by training the CNN with data at two different temperatures, the network accurately estimates SOH for charges at both temperature values. For applications with a wide temperature range, it is therefore recommended to train the network with data covering the whole span of operating temperatures. Importantly, it was shown that the CNN can accurately estimate SOH even when data is only available for a partial charge. A very wide range of partial charge cases were investigated, starting anywhere between 0 and 95% SOC, and ending between around 60 and 100% SOC, and MAE was no higher than 2.3% for these cases. A design approach is recommended where multiple CNNs are implemented in the real application, each trained for a different SOC range.
While other papers have utilized CNNs to estimate SOH from impedance spectroscopy data or combined CNNs with additional algorithms or methods for creating new features from the data, this work has shown that with proper CNN sizing and structure, sufficient data, and augmentation of the data through the addition of noise and error, a very low error of around 1% MAE or less can be achieved. The presented methodology is, overall, less complex than some of the prior art while still achieving good performance, making it a promising candidate for many applications.
Author Contributions: E.C.: conceptualization, methodology, software, validation, investigation, data curation, and writing-original draft; P.J.K.: conceptualization, supervision, writing-reviewing and editing; M.P.: conceptualization, supervision, writing-reviewing and editing; Y.F.: Figure 10. Examples of voltage, current, and SOC time domain charging measurements used for training SOH algorithm. Each set of partial SOC charge data is 2560 s long, the input data length for the CNN.

Conclusions
This paper introduced a deep learning technique for state-of-health estimation. Specifically, convolutional neural networks were used to extract ageing signatures from reference charge profiles and, in turn, estimate SOH. Time domain voltage, current, and temperature measurements were used as inputs to the CNN, and accuracy was found to be improved when data pooling was used and when the data was augmented with some noise and error to make it more representative of data from a real-world system. The use of more convolutional layers, up to six, was shown to reduce error. Little benefit was found for increasing the number of cells in the training dataset beyond 13, giving insight into how much battery testing is necessary to create an accurate machine learning-based SOH estimation algorithm. It was also demonstrated that by training the CNN with data at two different temperatures, the network accurately estimates SOH for charges at both temperature values. For applications with a wide temperature range, it is therefore recommended to train the network with data covering the whole span of operating temperatures. Importantly, it was shown that the CNN can accurately estimate SOH even when data is only available for a partial charge. A very wide range of partial charge cases were investigated, starting anywhere between 0 and 95% SOC, and ending between around 60 and 100% SOC, and MAE was no higher than 2.3% for these cases. A design approach is recommended where multiple CNNs are implemented in the real application, each trained for a different SOC range.
While other papers have utilized CNNs to estimate SOH from impedance spectroscopy data or combined CNNs with additional algorithms or methods for creating new features from the data, this work has shown that with proper CNN sizing and structure, sufficient data, and augmentation of the data through the addition of noise and error, a very low error of around 1% MAE or less can be achieved. The presented methodology is, overall, less complex than some of the prior art while still achieving good performance, making it a promising candidate for many applications. Data Availability Statement: The data used in this paper is from the NASA Ames Prognostics Data Repository [21].