I have focused my research on the safety monitoring of electric vehicle battery packs throughout their entire life cycle. The rapid growth of electric vehicles has made battery safety, durability, and reliability central concerns for manufacturers, operators, and users. An electric vehicle battery pack experiences normal aging, varied driving conditions, charging and discharging cycles, and occasional abuse. These factors increase the probability of internal short circuits, thermal runaway, and premature capacity fade. Therefore, I developed a cloud-based framework that combines state-of-health estimation and thermal runaway warning for electric vehicle battery packs. My goal is to provide continuous, accurate, and scalable safety assessment using real-world vehicle data.
In my work, I treat the electric vehicle battery pack as a complex system whose safety cannot be fully captured by a single sensor or a single algorithm. I combine inconsistency analysis, machine learning, signal processing, and cloud engineering. I use real-world operational data to ensure that the methods are practical, robust, and deployable. I also design laboratory aging experiments to provide accurate capacity labels that are often missing in real-world electric vehicle battery pack data. The result is an integrated solution that supports early fault detection, health estimation, and cloud-based monitoring.
Background and Motivation
The global transition from fossil fuels to clean energy has accelerated the adoption of electric vehicles. The electric vehicle battery pack is the core energy storage unit, and its safety directly affects vehicle safety. Lithium-ion batteries are preferred because of their high energy density, long cycle life, and good charge-discharge performance. However, lithium-ion batteries can still fail due to manufacturing defects, mechanical abuse, electrical abuse, thermal abuse, or gradual degradation. Failures may lead to internal short circuits, rapid heat generation, and thermal runaway. Although the probability of fire is low, the consequences can be severe. This motivates continuous monitoring and early warning for every electric vehicle battery pack.
Battery aging also affects usability and safety. As an electric vehicle battery pack ages, its capacity decreases and its internal resistance increases. Cell-to-cell inconsistency grows, which reduces the usable capacity of the whole pack and may accelerate degradation. Accurate state-of-health estimation helps determine remaining range, maintenance needs, and replacement schedules. Thermal runaway warning helps prevent accidents. Both functions are essential for life-cycle safety monitoring of an electric vehicle battery pack.
Vehicle-mounted battery management systems have limited storage and computing power. They often rely on simple threshold methods and cannot store long-term high-resolution data. Cloud platforms can overcome these limitations. By uploading battery data to the cloud, I can deploy more advanced algorithms, store long-term records, and perform fleet-level analysis. This is why I built a cloud-based safety monitoring platform for electric vehicle battery packs.
Data Sources and Preprocessing
I used two main data sources. The first is real-world operational data from electric vehicles. The second is laboratory aging data from a battery pack tested under real-world driving profiles. The real-world data follows the national standard for electric vehicle remote service and management. It includes total voltage, total current, state of charge, temperature, and individual cell voltages. The sampling rate is approximately 0.1 Hz. The data covers different battery chemistries, including lithium iron phosphate and ternary lithium, and different vehicle types, including private cars and city buses.
Real-world data often contains missing values, outliers, and communication errors. I therefore built a preprocessing pipeline. First, I identify vehicle states using charge status, speed, and mileage. I define charging when the charge flag is active, speed is zero, and mileage does not increase. I define driving when the discharge flag is active and speed or mileage changes. I define resting when the discharge flag is active and speed and mileage remain zero. Other states are treated as invalid. Then I split the data into charging and discharging segments. I convert absolute timestamps into time differences between adjacent points. After segmentation, I clean the data. For cell voltages, I detect jumps and compare the local standard deviation with the mean. For total voltage, I cross-check with the sum of cell voltages. For current, I remove values beyond physical thresholds. For temperature, I apply similar outlier detection. For state of charge, I remove continuous abrupt jumps. If an outlier affects fewer than five sample points, I interpolate linearly. If an outlier affects more than one percent of a segment, I delete the segment.
| Data Type | Typical Content | Use in My Algorithms |
|---|---|---|
| Cell voltage | Individual cell voltages over time | Inconsistency analysis, SOH estimation, thermal runaway warning |
| Total voltage | Pack terminal voltage | Cross-validation, resistance estimation |
| Total current | Charge and discharge current | Charging resistance, trend features |
| Temperature | Cell and pack temperatures | Safety context, outlier detection |
| State of charge | Estimated SOC | Segment labeling, preprocessing |
| Mileage and speed | Vehicle motion data | State identification, driving profile extraction |
Because real-world data rarely includes accurate capacity labels, I designed a laboratory aging experiment. I used a battery pack with a topology similar to an electric vehicle battery pack. I selected lithium iron phosphate cells with a nominal capacity of 20 Ah. I configured the pack as 8 series and 2 parallel. I screened cells by capacity and internal resistance to reduce initial inconsistency. I then performed capacity tests, hybrid pulse power characterization tests, real-world driving profile tests, and accelerated aging cycles. Each aging point included capacity measurement and real-world profile operation. This provided accurate capacity labels for validating my SOH estimation algorithm. The experimental flow allowed me to simulate the aging of an electric vehicle battery pack under realistic conditions.
State-of-Health Estimation Based on Inconsistency
I propose a state-of-health estimation method for an electric vehicle battery pack based on cell-to-cell inconsistency. The core idea is that as an electric vehicle battery pack ages, cell-to-cell differences increase. These differences appear in the voltage response during charging and discharging. By quantifying the similarity among cell voltage curves, I can extract an inconsistency indicator that correlates strongly with pack capacity. This method is suitable for real-world data because it does not require full capacity measurements and is robust to low sampling rates.
I first determine a reference voltage curve. The reference curve represents the normal behavior of most cells. Because a pack may contain outlier cells, I use a multi-level 3σ screening procedure. I compute the mean and standard deviation of cell voltages at each time step. I remove points outside the range of mean plus or minus three standard deviations. I repeat this process until the change in standard deviation is below a dynamic threshold. This yields a reference curve that is not biased by extreme cells. The reference curve is denoted as \(V_m\).
Next, I evaluate the similarity between each cell voltage curve and the reference curve. To handle timing misalignment and sampling errors, I use dynamic time warping. For a cell voltage sequence \(V_c=[V_{c0},V_{c1},\ldots,V_{cn}]\) and a reference sequence \(V_m=[V_{m0},V_{m1},\ldots,V_{mn}]\), I initialize a distance matrix \(D\). The recurrence relation is:
$$D(i,j)=|V_c(i)-V_m(j)|+\min\{D(i-1,j),D(i,j-1),D(i-1,j-1)\}$$
After finding the optimal warping path, I obtain aligned sequences \(V_{c\_new}\) and \(V_{m\_new}\). I then compute the Euclidean distance as the similarity measure:
$$S_{line}(i)=\sqrt{\sum_{i=1}^{n}\left(V_{c\_new}(i)-V_{m\_new}(i)\right)^2}$$
This produces a set of similarity values \(S_{line}\) for all cells in a segment. To characterize the distribution of similarity, I use kernel density estimation. I compute the standard deviation \(\sigma\) and mean \(\mu\) of \(S_{line}\). I select the bandwidth \(h\) using Scott’s rule:
$$h=\sigma\left(\frac{1}{N}\right)^{\frac{1}{5}}$$
I use a Gaussian kernel:
$$K(x)=\frac{1}{\sqrt{2\pi}h}\exp\left(-\frac{x^2}{2h^2}\right)$$
The probability density estimate is:
$$\hat{f}(x)=\frac{1}{n}\sum_{i=1}^{n}\frac{1}{h}K\left(\frac{x-S_i}{h}\right)$$
From the probability density curve, I extract two indicators. The first is the cumulative probability \(P\) within ten percent of the peak on both sides. The second is the distribution span \(S\). A larger \(P\) means that cells are concentrated near the peak, indicating better consistency. A larger \(S\) means that cells are dispersed, indicating worse consistency. I define an inconsistency indicator as the ratio of \(S\) to \(P\), and for numerical stability I often use the inverse. After computing the indicator for all segments, I remove outliers using DBSCAN and fit a spline to obtain the inconsistency trend.
| Step | Method | Purpose |
|---|---|---|
| Reference curve generation | Multi-level 3σ screening | Obtain a robust normal voltage trend |
| Time alignment | Dynamic time warping | Reduce sampling misalignment errors |
| Similarity measurement | Euclidean distance after warping | Quantify each cell’s deviation |
| Distribution estimation | Kernel density estimation | Model similarity distribution |
| Indicator extraction | Cumulative probability and span | Characterize pack inconsistency |
| Trend fitting | DBSCAN and spline fitting | Remove outliers and smooth the trend |
I applied this method to real-world data from five vehicles. The data covered one year of operation. Three vehicles used lithium iron phosphate batteries, and two used ternary lithium batteries. The driving conditions were mainly city bus routes. I compared the inconsistency indicator with a capacity estimate obtained by Monte Carlo simulation. I used the Pearson correlation coefficient to evaluate the relationship. The Pearson correlation coefficient between two sequences \(A\) and \(B\) is:
$$PCC(A,B)=\frac{1}{N-1}\sum_{i=1}^{N}\left(\frac{A_i-\mu_A}{\sigma_A}\right)\left(\frac{B_i-\mu_B}{\sigma_B}\right)$$
The correlation coefficients ranged from 0.864 to 0.99, with an average of 0.921. This indicates a strong linear relationship between my inconsistency indicator and the estimated capacity of the electric vehicle battery pack. The method performed well across different battery chemistries and operating conditions. I also validated the algorithm on laboratory aging data. The estimated SOH had an average error of about two percent, with a mean absolute error of 0.22. The results confirm that inconsistency-based SOH estimation is accurate and practical for an electric vehicle battery pack.
| Vehicle ID | Battery Chemistry | Data Length | PCC with Capacity |
|---|---|---|---|
| #1 | LFP | More than 1,000,000 rows | 0.892 |
| #2 | LFP | More than 1,000,000 rows | 0.864 |
| #3 | LFP | More than 1,000,000 rows | 0.891 |
| #4 | Ternary lithium | More than 1,000,000 rows | 0.967 |
| #5 | Ternary lithium | More than 1,000,000 rows | 0.990 |
Thermal Runaway Warning Using Multimodal Machine Learning
I also developed a multimodal machine learning framework for thermal runaway warning of an electric vehicle battery pack. The framework uses numerical and image features to capture early fault signatures. It does not require large labeled datasets or complex pretraining. It is robust to battery aging because it compares cells within the same pack rather than relying on absolute thresholds that change with age. The framework has three main modules: feature extraction, feature fusion and dimensionality reduction, and multidimensional recursive fault diagnosis.
I extract three types of features. The first is charging resistance. During multistage charging, current steps cause voltage steps. I estimate a charging resistance using:
$$R_C=-\frac{U_A-U_B}{I_A-I_B}$$
where \(U_A\) and \(U_B\) are cell voltages before and after a current step, and \(I_A\) and \(I_B\) are the currents before and after the step. Although this estimate is not a precise ohmic resistance, it reflects internal state changes and is useful for cloud-based diagnostics of an electric vehicle battery pack.
The second feature is the trend skewing measurement, or TSM. I first compute a standard voltage curve by excluding the top and bottom twenty percent of cell voltages at each time step. The relative voltage for each cell is the difference between its voltage and the standard voltage. I then integrate the relative voltage over time and average over the duration:
$$TSM_i=\frac{\sum_t V_{Ri}(t)}{t_{sum}}$$
To improve sensitivity to internal short circuits, I apply a scaling factor to positive TSM values:
$$TSM_i^*=\begin{cases}TSM_i, & TSM_i>0\\ \alpha TSM_i, & TSM_i<0\end{cases}$$
where \(\alpha\) is set to 0.8. This reduces the weight of harmless high-voltage deviations and emphasizes low-voltage anomalies that may indicate internal short circuits in an electric vehicle battery pack.
The third feature is a time-frequency spectrogram. I apply the short-time Fourier transform to the relative voltage signal. The transform is:
$$SP(t,\omega)=\left|\int V(\tau)h(\tau-t)e^{-j\omega\tau}d\tau\right|^2$$
I use a window size of 4 and an overlap of 3. The resulting spectrogram is converted to a logarithmic scale:
$$S_{edit}=10\log_{10}(|S|)$$
These spectrograms preserve both time and frequency information. They are effective for detecting sudden changes that may precede thermal runaway in an electric vehicle battery pack.
| Feature | Domain | Physical Meaning | Role in Warning |
|---|---|---|---|
| Charging resistance | Electrical parameter | Internal state and aging | Auxiliary fault indicator |
| Trend skewing measurement | Time domain | Cumulative voltage deviation | Gradual and mild fault detection |
| Spectrogram | Time-frequency domain | Dynamic response patterns | Sudden fault detection |
For image feature extraction, I use a convolutional neural network. The convolution operation is:
$$H_j^{l+1}=f\left(\sum_{i\in x_j}H_i^l * W_{ij}^{l+1}+b_j^{l+1}\right)$$
I use ReLU6 in the first layer and ReLU in later layers. ReLU6 is:
$$f(x)=\min(\max(0,x),6)$$
and ReLU is:
$$f(x)=\max(0,x)$$
I use a combination of max pooling and average pooling. Max pooling highlights salient features, while average pooling smooths noise. The convolutional network outputs a 32-dimensional feature vector for each spectrogram. I then apply kernel principal component analysis to reduce the dimension to one. The Gaussian kernel used in KPCA is:
$$K_{ij}=\exp\left(-\frac{\|x_i-x_j\|^2}{N}\right)$$
This produces a compact image-based fault feature that can be fused with numerical features.
For feature fusion, I normalize each feature by the median or mean of the normal cells in the same pack. This reduces the influence of absolute operating conditions and battery aging. I then form a three-dimensional feature vector for each cell. The vector contains the normalized TSM, normalized charging resistance, and normalized image feature. This vector is the input to the recursive fault diagnosis module.
The recursive fault diagnosis module finds the center of the normal cell cluster in three-dimensional space. It computes the centroid as:
$$F_{xc}=\frac{1}{n}\sum_{i=1}^{n}F_{xi},\quad F_{yc}=\frac{1}{n}\sum_{i=1}^{n}F_{yi},\quad F_{zc}=\frac{1}{n}\sum_{i=1}^{n}F_{zi}$$
Then it computes the Euclidean distance from each cell to the centroid:
$$D_i=\sqrt{(F_{xi}-F_{xc})^2+(F_{yi}-F_{yc})^2+(F_{zi}-F_{zc})^2}$$
It iteratively removes the farthest cell and recomputes the centroid until the ratio of the average distance after removal to the average distance before removal is greater than or equal to 0.95:
$$\beta=\frac{D_{aft}}{D_{pre}}\geq 0.95$$
After convergence, the final centroid represents the normal cell cluster. The final fault score for each cell is its distance to this centroid. I set a fault threshold of 7.5 based on extensive testing. Cells with scores above this threshold are flagged as abnormal.
| Module | Input | Operation | Output |
|---|---|---|---|
| Feature extraction | Voltage, current, temperature | Resistance, TSM, STFT | Numerical and image features |
| CNN feature extraction | Spectrogram | Convolution, pooling, activation | 32-dimensional feature |
| KPCA reduction | 32-dimensional feature | Gaussian kernel PCA | One-dimensional feature |
| Feature fusion | TSM, resistance, image feature | Normalization and combination | Three-dimensional vector |
| Recursive diagnosis | Three-dimensional vectors | Centroid iteration and distance | Fault score per cell |
I validated the thermal runaway warning framework using real-world data from multiple vehicles. I analyzed data from vehicles that experienced thermal runaway, vehicles suspected of thermal runaway, and normal vehicles. In one case, the electric vehicle battery pack caught fire after a period of operation. The algorithm flagged the faulty cell more than eleven days before the incident. In another case, the algorithm flagged a suspected faulty cell several days before the recorded data ended, and the vehicle caught fire shortly after. For normal vehicles, the fault scores remained below the threshold, indicating a low false positive rate. The average warning time across thermal runaway vehicles was about eleven days, with a minimum of seven days. The method worked for both lithium iron phosphate and ternary lithium electric vehicle battery packs, and for both passenger cars and city buses.
| Vehicle Type | Battery Chemistry | Warning Time | False Positive Rate |
|---|---|---|---|
| Passenger car | Ternary lithium | More than 11 days | Very low |
| Passenger car | Ternary lithium | About 10 days | Very low |
| City bus | LFP | About 8 days | Very low |
| City bus | LFP | No thermal runaway | Low |
Cloud-Based Safety Monitoring Platform
To make these algorithms practical for real electric vehicles, I developed a cloud-based safety monitoring platform for the electric vehicle battery pack. The platform integrates real-time monitoring, state-of-health estimation, thermal runaway warning, and information push. It overcomes the storage and computing limitations of vehicle-mounted battery management systems. The platform has three layers: a database layer, a backend layer, and a frontend layer.

The database layer uses MySQL. MySQL is a relational database management system that supports structured query language, ACID transactions, and high concurrency. It stores vehicle data, battery parameters, algorithm results, and user information. I use InnoDB storage engine with clustered indexes and adaptive hash indexing. I also use partitioned tables to separate hot and cold data by week. This design supports efficient storage and retrieval for a large number of electric vehicle battery packs. The query cache, buffer pool, and log system provide industrial-grade reliability.
The frontend layer uses HTML, CSS, and JavaScript. HTML defines the page structure. CSS controls the visual style. JavaScript enables dynamic interaction and asynchronous data loading. I use the ECharts library to visualize real-time curves, maps, bar charts, and pie charts. The frontend supports real-time updates of voltage, current, temperature, state of charge, state of health, and fault scores. It is compatible with different devices and screen sizes. This makes it easy for operators to monitor a large fleet of electric vehicle battery packs.
The backend layer uses Python. I use Scikit-learn for kernel density estimation and kernel principal component analysis. I use PyTorch for the convolutional neural network in the thermal runaway warning algorithm. I use the Django web framework to connect the frontend, the backend, and the database. Django provides object-relational mapping, security protection, and a template system. It separates presentation, business logic, and data storage. I also implement an asynchronous task queue to handle high-concurrency algorithm requests. When a user submits a request, the system returns an immediate response and processes the algorithm in the background. The result is converted to JSON and sent back to the frontend.
| Layer | Technology | Function |
|---|---|---|
| Database | MySQL | Store vehicle data, battery parameters, algorithm results |
| Backend | Python, Django, Scikit-learn, PyTorch | Run algorithms, process requests, manage data |
| Frontend | HTML, CSS, JavaScript, ECharts | Visualize data and enable user interaction |
| Communication | Django REST API, JSON | Exchange data between frontend and backend |
The platform has five main pages: a home page, a battery list page, an overall SOH monitoring page, an overall safety risk monitoring page, and a battery detail page. The home page shows real-time statistics, online vehicles, vehicle types, charging peaks, geographic distribution, health distribution, and warning status. The battery list page helps operators find a specific electric vehicle battery pack. The overall SOH monitoring page summarizes the health status of all connected vehicles. The overall safety risk monitoring page shows the proportion of high-risk vehicles and the trend of safety risks. The battery detail page shows topology, nameplate information, real-time curves, fault scores, and SOH history.
For algorithm deployment, I encapsulated the SOH estimation algorithm as an independent Python module. It loads normalization parameters and model files in advance. For the thermal runaway warning algorithm, I used asynchronous processing to avoid blocking the system during long computations. The backend retrieves data from the database, runs the algorithm, and returns the result as JSON. I also implemented caching for frequently used data and optimized database queries to reduce latency. Security measures include access control, injection attack prevention, script attack prevention, and certificate forgery prevention. These measures ensure safe operation for a large fleet of electric vehicle battery packs.
| Page | Main Content | User Benefit |
|---|---|---|
| Home | Real-time statistics, map, health distribution | Quick overview of fleet status |
| Battery list | Vehicle and battery basic information | Fast search and filtering |
| SOH monitoring | SOH results and trends | Understand aging across the fleet |
| Safety risk monitoring | Warning statistics and trends | Identify high-risk vehicles quickly |
| Battery detail | Topology, curves, fault scores, SOH history | Detailed diagnosis of one pack |
Validation and Discussion
I evaluated the proposed methods using both real-world data and laboratory data. For SOH estimation, the inconsistency-based method achieved a correlation coefficient above 0.86 with capacity in all tested vehicles, and the average correlation was 0.921. The laboratory validation showed an average SOH error of about two percent. The method does not require complex model training and is robust to low sampling rates and outliers. It is suitable for cloud-based monitoring of an electric vehicle battery pack.
For thermal runaway warning, the multimodal framework achieved an average warning time of eleven days and a minimum warning time of seven days. It produced very few false alarms on normal vehicles. It worked across different battery chemistries and vehicle types. The use of unsupervised learning reduces the need for labeled data and pretraining. The recursive diagnosis module improves the separation between normal and abnormal cells. The combination of time-domain, frequency-domain, and electrical features provides complementary information for early fault detection in an electric vehicle battery pack.
I also compared my methods with common approaches. Threshold-based methods are simple but cannot detect early faults. Model-based methods require accurate models and high computation. Pure data-driven methods often need large labeled datasets. My inconsistency-based SOH method avoids capacity labels and is robust to real-world noise. My multimodal thermal runaway warning method avoids pretraining and adapts to different electric vehicle battery packs. The cloud platform makes both methods accessible for fleet-level monitoring.
| Method | Data Requirement | Training Requirement | Warning Time | SOH Accuracy |
|---|---|---|---|---|
| Threshold methods | Low | None | Very short | Not applicable |
| Model-based methods | High | Model calibration | Moderate | Moderate |
| Pure data-driven methods | High | Large labeled data | Moderate | High |
| My inconsistency-based SOH | Low to moderate | None | Not applicable | About 98 percent |
| My multimodal warning | Moderate | None | About 11 days | Not applicable |
Conclusion
I have developed an integrated approach for life-cycle safety monitoring of an electric vehicle battery pack. I built a data preprocessing pipeline for real-world vehicle data and designed a laboratory aging experiment to provide accurate capacity labels. I proposed an inconsistency-based SOH estimation method using dynamic time warping and kernel density estimation. I proposed a multimodal thermal runaway warning method using trend skewing measurement, charging resistance, and spectrograms with a CNN-KPCA and recursive diagnosis framework. I developed a cloud-based safety monitoring platform using MySQL, Python, Django, HTML, CSS, and JavaScript. The platform supports real-time monitoring, SOH estimation, thermal runaway warning, and information push for a large fleet of electric vehicle battery packs.
My results show that the inconsistency-based SOH method achieves high accuracy and strong robustness. The multimodal thermal runaway warning method provides early warning more than a week in advance and maintains a low false positive rate. The cloud platform demonstrates that these algorithms can be deployed in a practical engineering environment. Together, these contributions support safer, more reliable, and longer-lasting electric vehicle battery packs. I believe that continued research on data quality, algorithm automation, and multi-source fusion will further improve the safety monitoring of electric vehicle battery packs throughout their life cycle.
In future work, I plan to improve the automation of data cleaning and preprocessing. I also plan to combine multiple capacity estimation methods to handle packs with few cells. I will continue to expand the cloud platform with more advanced analytics and more battery types. My goal is to make life-cycle safety monitoring of the electric vehicle battery pack more accurate, scalable, and accessible for real-world deployment.
