# In Operando Health Monitoring for Lithium-Ion Batteries in Electric Propulsion Using Deep Learning
## 2 Development of BMS
### SOH Estimation on BMS  
Voltage and temperature collected by the BMS are transferred to the computer or data collection facility. The current collected by the BMS was used to calculate the SOC of the battery by using the coulomb counting method, as shown in Figure 2. The data collected by the BMS are transferred via a wired transfer method due to its high-speed communication between the BMS and computer for the prediction of capacity. Coulomb counting [38] uses the initial capacity (Q\({}_{n}\)) provided in the data sheet of the battery pack (also mentioned in Table 3) along with the continuous current flowing into the battery pack to calculate the SOC. The SOC of each cycle along with the nominal capacity and cell chemistry fed into the CD-Net model [24] developed in-house by [PERSON] et al. are used for predicting the upcoming cycle discharge capacity. A combination of a five-layer autoencoder with a structure of \(10\times 4\times 1\times 4\times 10\) neurons and a two-layer perceptron was used in the CD-Net model. The model was optimized over 20 epochs using Adam's optimizer with \(1\times 10^{-4}\) learning rate. Four cycles of historical data were fed into the CD-Net, and using an encoder-decoder, the noise in the data was removed to highlight the temporal vectors responsible for the degradation of the battery. A rectified linear activation function with mean squared error as a loss function was used in the CD-Net model for better predictions. This model has already been tested on the NASA Prognostics Center of Excellence dataset and Sandia National Lab dataset in [24]. The maximum capacity of the upcoming cycle predicted by the CD-Net model is used to calculate the SOH, a ratio of the predicted maximum capacity to the nominal battery capacity.  
\begin{table}
\begin{tabular}{c c c} \hline
**Type** & **Connection** & **Use** \\ \hline \multicolumn{3}{c}{**Arduino Pins**} \\ \hline SCLK & Arduino Pin 13 & Clock line for SPI \\ \hline SDO & Arduino Pin 12 & Serial Data Output for SPI \\ \hline SDI & Arduino Pin 11 & Serial Data Input for SPI \\ \hline CS1 & Arduino Pin 10 & Chip Select Temperature Sensor 1 \\ \hline CS2 & Arduino Pin 9 & Chip Select Temperature Sensor 2 \\ \hline CS3 & Arduino Pin 8 & Chip Select Temperature Sensor 3 \\ \hline CS4 & Arduino Pin 7 & Chip Select Temperature Sensor 4 \\ \hline CS5 & Arduino Pin 6 & Chip Select Temperature Sensor 5 \\ \hline SCLK & Arduino Pin SCLK & Serial Data Clock for I2C \\ \hline SDO & Arduino Pin SDO & Serial Data Address for I2C \\ \hline \end{tabular}
\end{table}
Table 1: _Cont._  
\begin{table}
\begin{tabular}{c c c c} \hline
**Purpose** & **Sensors Used** & **Operating Voltage** & **Maximum Supply Current** \\ \hline Pack voltage and current sensor & Adafruit INA219 & 3.0–5.5 V & 1 mA \\ \hline Battery surface temperature sensors & Adafruit PT100 MAX31865 & 3.0–3.6 V & 3 mA \\ \hline Ambient temperature sensor & Adafruit PT100 MAX31865 & 3.0–3.6 V & 3 mA \\ \hline \end{tabular}
\end{table}
Table 2: Current and operating voltage requirements of the sensor network used in the development of BMS in this study.