In recent decades, the rapid electrification of road transportation has placed the safety and durability of traction batteries at the center of public attention. Since the traction battery is a high-energy electrochemical system, any abuse, manufacturing defect, or internal degradation path may trigger a severe thermal event. Meanwhile, the inevitable ageing of a traction battery changes both its usable capacity and its internal resistance, and such changes often degrade the consistency of cells inside a pack. Therefore, monitoring a traction battery over its whole service life requires a systematic combination of state-of-health estimation and fault diagnosis algorithms. In my dissertation work, I intended to develop practical algorithms that can work on the large-scale data collected from real electric vehicles, and to deploy those algorithms in a cloud-based safety monitoring platform for traction batteries. This article presents the complete work, including data preprocessing, experimental dataset construction, a health estimation method based on inconsistency assessment, a multi-modal thermal-runaway warning framework, and a cloud platform that makes the algorithms deployable for engineering use.

1. Introduction
The worldwide transition toward clean energy has accelerated the adoption of electric vehicles. According to the statistical data that I collected from public sources, annual sales of new energy vehicles in China exceeded 12 million in 2024, and the market share surpassed forty percent. This enormous fleet relies heavily on lithium-ion traction batteries because of their high energy density, long cycle life, and acceptable cost. Nevertheless, thermal safety incidents involving electric vehicles still occur on a considerable scale, and most of these incidents originate from the traction battery system. A lithium-ion traction battery stores a large amount of chemical energy; when an internal short circuit or another severe fault develops, the stored energy can be released abruptly, leading to fire or explosion. Consequently, effective electric-vehicle safety management depends on timely detection of abnormal states within the traction battery pack.
One central difficulty is that a traction battery pack is not a single electrochemical cell but an assembly of many cells arranged in series and parallel. The whole pack capacity and power capability are governed not only by the individual cells, but also by their disagreement, which is usually called inconsistency. During manufacturing, slight differences among cell materials, electrolyte filling, and formation conditions already exist. During operation, temperature gradients and load distributions further enlarge these differences. The result of cell inconsistency is an accelerated capacity loss in a traction battery pack. A group of cells with diverse states of health can limit the available energy, because the weaker cells reach charge or discharge limits earlier. Thus, inconsistency itself can be used as a fingerprint for estimating the pack-level state of health.
At the same time, thermal-runaway early warning remains an open challenge. Vehicle battery management systems usually have limited computational capability and memory, so they mainly implement rule-based alarms with fixed thresholds. Such alarms are unreliable for early-stage faults, because the voltage anomalies caused by an internal short circuit are often very weak and buried under normal load variations. Cloud-based monitoring, in contrast, gathers data from millions of vehicles and has abundant storage and computational resources. This fact motivates the development of diagnostic algorithms that are specifically designed for noisy, low-frequency, real-world traction battery data.
In my work, I focus on three technical goals. First, I design a preprocessing and experimental pipeline to obtain trustworthy traction battery data. Second, I develop a health estimation technique that evaluates the inconsistency of a traction battery pack from normal charging and discharging voltage records. Third, I build a multi-modal thermal-runaway warning framework that uses time-domain, frequency-domain, and internal-resistance features. Finally, I deploy those methods into a web-based safety monitoring platform for traction batteries throughout their complete life cycle.
2. Data Preparation and Experimental Dataset Construction
To construct and validate monitoring algorithms for a real traction battery, I had to rely on two complementary sources of data. The first source is massive real-world vehicle data from the cloud. The second source is an experimental dataset obtained from a battery pack that I aged in the laboratory under real-world driving profiles. This section summarizes the characteristics, preprocessing, and simulation experiments of these datasets.
2.1 Real-world Traction Battery Data
The real-world data used in this study were collected following the Chinese national standard for remote monitoring of electric vehicles. The sampling period was approximately 0.1 Hz. Each record contained total voltage, total current, state of charge, temperature, speed, and individual cell voltages. Such data are suitable for cloud-based analysis, but they also contain missing values, communication interruptions, and sensor glitches. The data came from different traction battery types, including lithium iron phosphate and ternary lithium cells, and from different vehicle operating environments, including passenger cars and city buses.
| Dataset group | Battery chemistry | Vehicle type | Recorded duration | Sampling period | Main usage |
|---|---|---|---|---|---|
| Group A | Lithium iron phosphate | Passenger car | 12 months | 10 s | SOH inconsistency evaluation |
| Group B | Ternary lithium | Passenger car | 8 months | 10 s | Thermal-runaway warning |
| Group C | Lithium iron phosphate | City bus | 3 months | 10 s | Thermal-runaway generalization |
Raw records were first decomposed into driving segments, charging segments, and resting segments according to the charging flag, vehicle velocity, and odometer variation. Charging segments were identified when the charging flag indicated charging and the velocity was zero. Driving segments were identified when velocity varied or the odometer increased. After this segmentation, I separately stored the charging and discharging records. Time stamps were converted to relative times for the purpose of feature extraction.
2.2 Data Cleaning and Anomaly Handling
Real-world traction battery data contain anomalies, such as abrupt voltage jumps, saturated values, and random spikes. Since cell voltages are measured with redundant sensors and have a limited physical changing speed, a sudden change in one voltage sample can be considered suspicious if the surrounding voltage distribution does not exhibit a similar jump. I used the three-sigma criterion to locate outliers:
$$ \lvert V_i – \overline{V} \rvert > 3 \sigma_{V} $$
where \( V_i \) is a single measured cell voltage, \( \overline{V} \) is the local mean, and \( \sigma_{V} \) is the local standard deviation. When an anomalous sample was shorter than five sampling periods, I replaced it by linear interpolation. When the number of anomalous samples exceeded one percent of a segment, the whole segment was discarded. For current data, I only removed samples whose absolute values exceeded the physically possible range. Abnormal state-of-charge jumps were treated by checking continuity of the state-of-charge signal. The cleaned segments were stored as the basis for all later analyses.
2.3 Simulated Ageing Experiment of a Traction Battery Pack
The real-world data rarely include accurate capacity labels, because a normal electric vehicle does not carry out standard capacity tests during normal use. To quantitatively evaluate the state-of-health estimation algorithm, I therefore designed a laboratory experiment that exercised a traction battery pack under realistic driving cycles. The battery pack consisted of eight series groups, each series group containing two cells connected in parallel. I used 20 Ah prismatic lithium iron phosphate cells. The pack topology is shown conceptually by the arrangement that resembles the series-parallel structure of commercial traction battery packs.
| Parameter | Value |
|---|---|
| Electrode chemistry | Lithium iron phosphate |
| Nominal capacity | 20 Ah |
| Nominal voltage | 3.2 V |
| Charge cut-off voltage | 3.65 V |
| Discharge cut-off voltage | 2.0 V |
| Maximum continuous discharge current | 3 C |
| Maximum pulse discharge current | 5 C |
At the beginning of the experiment, I screened all available single cells by measuring their capacity and internal resistance. Only cells with close capacities and resistances were selected for pack assembly. Two parallel branches were built so that the total capacity and total resistance of each parallel branch were balanced. After assembly, the experimental traction battery pack was tested according to the following sequence of procedures.
| Step | Procedure | Target |
|---|---|---|
| 1 | Single-cell capacity test | Determine initial capacity and screen cells |
| 2 | Pack capacity test | Provide the reference capacity label |
| 3 | Hybrid pulse power characterization | Recognize internal resistance evolution |
| 4 | Real-world driving-profile cycling | Simulate normal vehicle usage |
| 5 | Accelerated 2 C ageing cycling | Accelerate the ageing process |
During the capacity test, the traction battery pack was charged with a constant-current profile followed by a constant-voltage-like small-current stage. Because a battery pack is usually not equipped with a cell-balancing circuit in the laboratory setup, I used a low-current top-up to guarantee that all series groups reached full state of charge. The pack was discharged at 0.3 C to the cut-off voltage of any cell. The measured discharge capacity was used as the reference capacity for the corresponding ageing point.
The real-world driving-profile cycling was designed by combining recorded discharge profiles from cloud data. Each current profile was scaled from the original vehicle capacity to the tested battery pack capacity. In addition, a multi-stage charging current was used to mimic commercial electric-vehicle charging protocols. Thus, every ageing point contained realistic charging and discharging stages, which supplied rich data for the health estimation algorithm. Accelerated ageing was then inserted by repeating a 2 C discharge between two multi-stage charges, enabling the experiment to reach a considerable state-of-health degradation within fifteen ageing blocks.
3. State-of-Health Estimation Based on Inconsistency Evaluation
The first algorithm that I address is the state-of-health estimation of a traction battery pack. Since the pack-level state-of-health is affected by both the average cell ageing and the inconsistency among cells, my method extracts inconsistency information from low-sampling-rate cell voltages and uses it as an indicator of pack health. The method is especially advantageous because it does not require data from a full standard capacity test and can operate on ordinary charging segments collected by cloud servers.
3.1 Feature Extraction
I selected the voltage response during a complete charge or discharge segment as the basis for feature extraction. In an ideal traction battery pack, every cell should produce a nearly identical voltage trajectory after removing the effect of different series connections. If some cells are aged more quickly or if they have latent faults, their voltage trajectories deviate from the majority. To quantify the deviation, I first constructed a robust baseline curve. Because the number of abnormal cells is small, a simple mean of all voltage curves is often biased by outliers. Therefore, I applied a multi-stage three-sigma criterion to remove extreme cells and to obtain a baseline curve \( V_m \).
Time synchronization was an additional concern, because cloud data may have different time offsets for different cells. I used the dynamic time warping algorithm to align the recorded curve of each cell with the baseline curve. Let \( V_c = [V_{c1}, V_{c2}, … , V_{cn}] \) represent one cell voltage sequence and let \( V_m = [V_{m1}, V_{m2}, … , V_{mn}] \) represent the baseline voltage sequence. I defined a distance matrix \( D \) with elements derived from the absolute difference between sample points. The recurrence relation is expressed as:
$$ D(i,j) = |V_{ci} – V_{mj}| + \min \left[ D(i-1,j), D(i,j-1), D(i-1,j-1) \right] $$
After building the matrix, I searched for the optimal warping path from one corner to the opposite corner. The warped sequences were then used to compute an ordinary Euclidean distance-like similarity measure:
$$ S_{line} = \sqrt{\sum_{i=1}^{n}\left( V_{c,new}(i) – V_{m,new}(i) \right)^2} $$
This similarity value \( S_{line} \) is small when the cell follows the baseline closely and becomes large when the cell behaves differently from the majority. I repeated the computation over all cells and all selected time windows, thus obtaining a set of similarity values for each charging segment.
3.2 Probability Density Estimation and Inconsistency Index
Because the similarity values of a healthy traction battery pack are concentrated in a narrow interval, while the values of an aged or questionable pack are scattered over a wider interval, I estimated the probability density function of the similarity distribution. Standard kernel density estimation was applied with a Gaussian kernel. The standard deviation of similarity values was computed first:
$$ \sigma = \sqrt{ \frac{1}{N} \sum_{i=1}^{N} \left( S_{line}(i) – \mu \right)^2 } $$
where \( \mu \) is the mean of all similarity scores in a segment. Scott’s rule was then used to choose the bandwidth:
$$ h = \sigma \left( \frac{5}{4 N} \right)^{-\frac{1}{5}} $$
The Gaussian kernel density estimator was then evaluated as:
$$ \hat{f}(x) = \frac{1}{N h \sqrt{2 \pi}} \sum_{i=1}^{N} \exp\left( -\frac{(x – S_{line}(i))^{2}}{2 h^2} \right) $$
From the estimated density curve, I extracted two scalar indicators. The first indicator \( P \) is the cumulative probability in the central region around the peak of the density. A high \( P \) means that most cells have very similar voltage behavior. The second indicator \( W \) is the span of the density curve, which quantifies how spread the similarity distribution is. A compact distribution has a small \( W \), while a dispersed distribution has a large \( W \). The final inconsistency index was defined as:
$$ I_{inc} = \frac{W}{P} $$
To stabilize the numerical value, I took the reciprocal or performed a simple transformation. The resulting inconsistency index is expected to increase as cells in a traction battery pack diverge from each other. Since the inconsistency of a pack generally becomes worse with ageing and with the appearance of latent faults, this index can serve as a state-of-health correlate.
3.3 Validation on Real-World Vehicles
I used five real-world vehicles, coded as Vehicles 1 to 5, for validation. Three vehicles were equipped with lithium iron phosphate traction batteries and two vehicles were equipped with ternary lithium traction batteries. All vehicles operated in urban environments for approximately one year. For each vehicle, I computed the inconsistency index over time. Then I used a Monte Carlo capacity estimation method to obtain a reference battery-pack capacity trend. The Pearson correlation coefficient between the inconsistency index and the reference capacity was computed as:
$$ \rho = \frac{\sum_{i=1}^{N} (A_i – \mu_A)(B_i – \mu_B)}{\sqrt{\sum_{i=1}^{N} (A_i – \mu_A)^2} \sqrt{\sum_{i=1}^{N} (B_i – \mu_B)^2}} $$
| Vehicle code | Battery chemistry | Pearson correlation coefficient |
|---|---|---|
| Vehicle 1 | Lithium iron phosphate | 0.864 |
| Vehicle 2 | Lithium iron phosphate | 0.898 |
| Vehicle 3 | Lithium iron phosphate | 0.935 |
| Vehicle 4 | Ternary lithium | 0.921 |
| Vehicle 5 | Ternary lithium | 0.989 |
Averaged across the five vehicles, the Pearson correlation coefficient reached 0.921. Such a high value suggests that the inconsistency index is indeed closely related to the capacity trend of a traction battery pack. The method was also robust when the vehicle had an aggressive driving style or when the seasonal temperature varied. Compared with methods that require a fixed laboratory charging profile, my approach can freely use ordinary charging segments from a real vehicle.
3.4 Validation on the Laboratory Aged Traction Battery Pack
To assess the quantitative precision of the state-of-health estimation, I applied the inconsistency-based method to the laboratory recycled traction battery pack. The pack was aged through fifteen ageing blocks. Each block began with a capacity test, which provided the true reference capacity. Then, the real-world driving-profile tests supplied the input data for the estimator. In the following table, I summarize the mean absolute errors obtained by the method.
| Evaluation stage | Mean estimation error | Mean absolute error | Availability |
|---|---|---|---|
| Whole 15 ageing blocks | 2.0% | 0.22 Ah | All segments |
| Early ageing blocks | 1.6% | 0.19 Ah | Blocks 1-5 |
| Middle ageing blocks | 1.8% | 0.21 Ah | Blocks 6-10 |
| Late ageing blocks | 2.6% | 0.31 Ah | Blocks 11-15 |
The slightly larger error in the last ageing blocks was caused by the noticeable swelling and accelerated degradation of some cells, which increased the nonlinearity of the inconsistency evolution. Nevertheless, the total state-of-health error remained below two to three percent. This result demonstrates that inconsistency features extracted from voltage signals could estimate the capacity of a traction battery pack with reasonable accuracy. In actual vehicles, an online cloud estimator can further reduce the error by combining multiple segments and by applying a smoothing algorithm to remove the remaining fluctuations.
4. Multi-Modal Thermal Runaway Warning Method
While state-of-health estimation addresses gradual degradation, thermal-runaway warning addresses sudden and severe safety risks. A thermal-runaway event in a traction battery is often preceded by a short-circuit fault that gradually grows in severity over days or weeks. The voltage anomaly caused by such a fault is usually very small in the beginning, and it is masked by normal load changes. Therefore, I developed a multi-modal warning framework that combines time-domain measures, frequency-domain images, and charging-resistance estimates. The following subsection describes the feature extraction approach in detail.
4.1 Feature Extraction
I extracted three complementary fault features from the cleaned cloud data. The first feature is the charging resistance. During a multi-stage charging process, the current suddenly changes. At that instant, the voltage drop caused by the internal resistance can be observed. The charging resistance is approximated as:
$$ R_{chg} = – \frac{U_A – U_B}{I_A – I_B} $$
where \( U_A \) and \( U_B \) are cell voltages before and after the current change, and \( I_A \) and \( I_B \) are the corresponding charging currents. This approximate resistance is not exactly equal to a standard ohmic resistance, but it is sufficient for cloud-based comparison between cells and over time.
The second feature is a time-domain cumulative measure that I call the trend skewing measurement. The fault signal in a cell voltage curve is often masked by the state-of-charge-dependent voltage slope. To remove the state-of-charge dependence, I first construct a reference voltage using the central part of the cell voltage distribution at each sampling time.
$$ V_m(i) = \frac{1}{m – n} \sum_{x=n}^{m} V_x(i) $$
Here \( V_x(i) \) denotes the \( x \)-th voltage value after sorting all cell voltages at sample time \( i \), and \( n \) and \( m \) exclude the lowest and highest twenty percent of the cells. Therefore, the reference curve is robust to outliers. A relative voltage is then defined as:
$$ V_{RV}(i) = V_{cell}(i) – V_m(i) $$
By integrating the relative voltage over the duration of a segment, I obtain the trend skewing measurement:
$$ TSM_i = \frac{ \sum_{t} V_{RV,i}(t) }{ t_{sum} } $$
Since a cell with an internal short circuit tends to show a slightly lower voltage than the reference, the negative relative voltage is more dangerous. To highlight this effect, I applied an asymmetric scaling factor:
$$ TSM_i^{*} = \begin{cases} TSM_i & TSM_i \ge 0 \\ 0.8 \, TSM_i & TSM_i < 0 \end{cases} $$
This factor prevents normal cells with slightly high voltage from producing false alarms, while making the abnormal low-voltage trait stronger. The TSM feature is sensitive to slow and persistent deterioration.
The third feature is a time-frequency image. To capture dynamic abnormalities that appear only during certain load events, I applied the short-time Fourier transform to the relative voltage signal. The transform is defined as:
$$ STFT\{x\}(t, \omega) = \int_{-\infty}^{\infty} x(\tau) h(\tau – t) e^{-j\omega \tau} d\tau $$
where \( h(t) \) is a window function. In my implementation I used Hann-like overlapping time windows to create a two-dimensional time-frequency matrix. The magnitude of this matrix was converted into decibel scale elements:
$$ S_{edit} = 10 \log_{10} \left( \left| S \right| + \epsilon \right) $$
where \( \epsilon \) is a small positive constant. The resulting image preserves both temporal information and frequency information, thus providing a richer representation for the diagnostic network.
4.2 Multi-Modal Diagnosis Framework
The diagnostic framework that I designed consists of three main modules: a graphic feature extraction module, a feature fusion module, and a recursive fault diagnosis module. The framework first receives both numerical features and the time-frequency images of each cell. Then, it normalizes all features to a common scale and computes a fault score for each single cell.
4.2.1 Graphic Feature Extraction with CNN-KPCA
I used a convolutional neural network to extract deep features from the time-frequency images. The convolutional operation can be written as:
$$ h^{l+1}_{j} = f \left( \sum_{i \in M_j} w^{l+1}_{ij} * h^{l}_{i} + b^{l+1}_{j} \right) $$
where \( h^{l+1}_{j} \) is the \( j \)-th feature map in layer \( l+1 \), \( w^{l+1}_{ij} \) is the convolution kernel between the \( i \)-th input channel and the \( j \)-th output feature map, \( b \) is a bias, and \( f \) is an activation function. For the first activation layer, I used the ReLU6 function to improve robustness under low-precision inference:
$$ f(x) = \begin{cases} 0 & x \le 0 \\ x & 0 < x < 6 \\ 6 & x \ge 6 \end{cases} $$
All other convolutional layers used the ordinary rectified linear unit. After the convolution layers, I applied both max pooling and average pooling. Max pooling selects the strongest local response, while average pooling preserves the global distribution information. The final output of the convolutional backbone was flattened and passed through a fully connected layer, yielding a 32-dimensional feature vector for the time-frequency image. This process did not rely on manually defined image features, which made the method more adaptive to different data qualities.
| Layer | Type | Kernel size | Activation |
|---|---|---|---|
| 1 | Convolution | 4 by 4 | ReLU6 |
| 2 | Convolution | 3 by 3 | ReLU |
| 3 | Convolution | 3 by 3 | ReLU |
| 4 | Max pooling | 3 by 3 | – |
| 5 | Average pooling | – | – |
| 6 | Flattening and full connection | – | – |
After the CNN, I used kernel principal component analysis to reduce the 32-dimensional feature vector to a one-dimensional image-based fault indicator. KPCA maps the original features \( X \) into a high-dimensional feature space by a mapping function \( \phi(X) \). I selected the Gaussian radial basis function as the kernel:
$$ K_{ij} = \exp\left( -\frac{\left\| X_i – X_j \right\|^2}{N} \right) $$
where \( N \) is a scale parameter. The covariance matrix in the mapped space can be expressed as:
$$ C = \frac{1}{m} \sum_{i=1}^{m} \phi(X_i) \phi(X_i)^T $$
The eigenvectors of this covariance matrix are found by solving the kernel eigenvalue problem. By selecting the eigenvector with the largest eigenvalue, I obtained the principal direction of nonlinear variation in the image feature space. This principal component was then used as the one-dimensional graphic feature for the following diagnosis step.
4.2.2 Feature Fusion and Normalization
Because the three extracted features have completely different scales, a direct combination would cause the larger-scale features to dominate the fault score. I therefore used a normalization method based on the majority of normal cells. In a traction battery pack, most cells are normal, so the median values of a normal feature can be considered as the healthy baseline. I first estimated a robust baseline for each feature:
$$ F_{normal} = \frac{1}{m-n} \sum_{k=n}^{m} F_{(k)} $$
where \( F_{(k)} \) is the sorted feature value among all cells, and the parameters \( m,n \) again exclude extreme values from the upper and lower tails. The normalized feature vector for each cell is then:
$$ \tilde{F_i} = \left[ \frac{F_{TSM,i}}{F_{TSM,norm}}, \frac{F_{R,i}}{F_{R,norm}}, \frac{F_{img,i}}{F_{img,norm}} \right]^T $$
By this normalization procedure, a normal cell has feature values close to one. An abnormal cell will have unique components deviating strongly from one. The normalized features are then combined into a three-dimensional vector and sent to the diagnostic module.
4.2.3 Recursive Fault Diagnosis Module
I employed a distance-based approach in the normalized three-dimensional feature space. The underlying assumption is that the normal cells form a dense cluster, while the topologically related fault cells lie far away from that cluster. I first calculated the centroid of the data cloud:
$$ F_c = \frac{1}{N} \sum_{i=1}^{N} \tilde{F_i} $$
For each cell, the Euclidean distance to the centroid is:
$$ d_i = \sqrt{ \left( \tilde{F}_{x,i} – F_{x,c} \right)^2 + \left( \tilde{F}_{y,i} – F_{y,c} \right)^2 + \left( \tilde{F}_{z,i} – F_{z,c} \right)^2 } $$
To prevent abnormal cells from biasing the centroid, I removed the cell with the largest distance, recomputed the centroid, and repeated the process. The target of the iteration is a stable centroid that represents the healthy majority. I called this procedure a multi-dimensional recursive diagnosis. After the final centroid is obtained, the distance from every cell to this final centroid is used as the fault score. A cell is flagged as anomalous when its distance exceeds a threshold \( d_{fault} \). In my analysis, a threshold of \( d_{fault} = 7.5 \) provided a good trade-off between false positives and false negatives for the datasets that I examined.
4.3 Validation Results
I evaluated the multi-modal warning algorithm on real-world electric-vehicle data. The most important case was a vehicle that experienced thermal runaway in April 2023. Before the final accident, the vehicle was operated normally without any obvious abuse. The manufacturer extracted fourteen days of remote monitoring data. After a detailed post-accident teardown, the origin of the thermal runaway was identified as cell 76. Additional faulty cells, including cells 50 and 66, were also found.
When my diagnostic algorithm was applied to the pre-accident data, it assigned increasing fault scores to cell 76 approximately eleven days before thermal runaway. Cells 50 and 66 were also identified as anomalous, which matched the disassembly findings. Moreover, normal cells in the same traction battery pack had very low fault scores, indicating a low false-alarm rate. The algorithm produced a similar early warning trend for other thermal-runaway cases, including multiple lithium iron phosphate and ternary lithium traction battery packs. The average advance warning time was about eleven days, which satisfies the practical requirement of at least one week.
| Vehicle case | Battery chemistry | Vehicle application | Advance warning time | Fault origin identified |
|---|---|---|---|---|
| Case A | Ternary lithium | Passenger car | 11 days | Cell 76 |
| Case B | Ternary lithium | Passenger car | 10 days | Cell 41 |
| Case C | Lithium iron phosphate | Passenger car | 11 days | Cell in pack |
| Case D | Lithium iron phosphate | City bus | 8 days | Cell 372 |
In addition to the thermal runaway vehicles, I checked multiple normal vehicles. None of the normal vehicles produced an alarm persistently above the threshold. A small number of temporary score increases could be observed when the cell voltage signal contained measurement noise or when the battery pack had a special two-parallel configuration. Nevertheless, these temporary fluctuations did not cause a continuous warning, because the recursive diagnostic module filtered out isolated anomalous behavior. Consequently, the false positive rate was very low.
I also investigated the relative contribution of each feature. The TSM feature is suitable for diagnosis of gradual internal short circuits, because it accumulates small deviations over an entire charging or discharging period. The charging resistance feature reveals the internal state of a traction battery cell independently of the load profile. The time-frequency image feature is more capable of detecting sudden signal dynamics. A single feature can sometimes identify an anomalous cell, but the combination of multiple features significantly reduces the false-alarm probability and improves the robustness of thermal-runaway warning.
The multi-modal algorithm has several practical advantages for traction battery applications. It does not require an exact thermal-runaway threshold to be calibrated manually for each battery type, because the threshold is defined relative to the distribution of healthy cells inside the same pack. It also avoids the need for large labeled datasets, because the diagnosis is unsupervised. The framework is extensible: if a new fault feature is added, the recursive diagnostic module can accept the additional dimension without retraining the whole network. This property dramatically reduces the maintenance burden of a cloud-based platform.
5. Development of a Cloud-Based Safety Monitoring Platform for Traction Batteries
Although my health estimation and thermal-runaway warning algorithms were validated offline, algorithm research alone cannot improve electric vehicle safety unless it is deployed in an operational monitoring platform. To achieve engineering implementation, I designed and developed a cloud-based safety monitoring platform tailored for traction batteries. The platform integrates real-time monitoring, state-of-health assessment, thermal-runaway warning, and information visualization for users. It follows a full-chain architecture containing a vehicle terminal, a communication network, and the cloud center. On the vehicle side, the vehicle control unit receives data from the battery management system via the controller area network bus and transmits the data through a wireless communication module. On the cloud side, the platform stores the incoming data in a database, invokes the monitoring algorithms, and updates the web interface in real time.
5.1 Overall Technical Scheme
I organized the cloud platform using a three-tier technical architecture. The data storage layer was implemented using MySQL. The business logic layer was implemented in Python, because the proposed algorithms rely on the Scikit-learn and PyTorch libraries. The user interaction layer was implemented with HTML, CSS, and JavaScript, which gives a cross-platform web interface. The Django framework was selected as the bridge between the frontend and backend. Django’s object-relational mapping allowed me to write Python classes instead of raw SQL statements for most database interactions, while preserving the flexibility to execute optimized SQL queries when needed.
| Layer | Technology | Application role |
|---|---|---|
| Data storage | MySQL | Storage of vehicle data and algorithm results |
| Back end | Python | Data processing, model inference, user requests |
| Algorithm libraries | Scikit-learn, PyTorch | State-of-health estimation, feature extraction, CNN-KPCA |
| Web framework | Django | Routing, security, API handling |
| Front end | HTML, CSS, JavaScript, ECharts | Real-time monitoring and visualization |
5.2 Database Design and Security
Because the data collected from a large fleet of electric vehicles are high-volume and time-ordered, I designed the database with separate tables for vehicle information, raw time-series data, state-of-health results, thermal-runaway scores, and user accounts. The vehicle information table stores static parameters such as vehicle identification, battery type, nominal capacity, and nominal voltage. The time-series table stores total voltage, total current, temperature, state of charge, and cell voltages with their recording times. The algorithm result table is updated every time a new charging or discharging segment is processed. This design avoids repetitive processing of the same raw data and makes queries efficient.
MySQL supports transaction isolation, indexing, and role-based access control. In the platform, I enabled backup and recovery jobs to prevent data loss. On the application side, Django provides built-in protections against SQL injection, cross-site scripting, and cross-site request forgery. These security measures are essential when the platform is used by multiple vehicle enterprises and maintenance centers.
5.3 Functional Modules
The user interface of the platform is divided into five main views: the home page, the battery list page, the state-of-health overview page, the safety-risk overview page, and the detailed battery page.
The home page shows statistical information about all connected electric vehicles, such as the number of vehicles online, the distribution of vehicle status, and the latest state-of-health or thermal-runaway warnings. It uses maps to display the geographic distribution of vehicles, which allows administrators to identify regional safety risks quickly. The home page also includes a charging peak-time statistical chart that can help utilities plan load management.
The battery list page supports searching for a vehicle by its identification or by other static parameters. Each row of this page contains a summary of the last algorithm outcome, such as the estimated state of health and the fault score of the highest-risk cell. By clicking on a vehicle, an authorized user enters the detailed battery page.
The state-of-health overview page aggregates health estimates across the fleet. It helps managers to observe the degradation pattern of traction batteries under different application conditions and to plan maintenance or battery replacement. The safety-risk overview page presents the number of cells and vehicles classified into risk levels. High-risk vehicles can be found directly from a dedicated list.
The detailed battery page describes the topology of the traction battery pack and displays the basic manufacturer information. The visualization module presents real-time voltage and current curves for the selected battery. The algorithm-result section illustrates the recent fault score of every cell as a bar chart and the historical state-of-health trend as a line chart. This page is the primary interface through which a user can investigate an early warning and decide whether an on-site inspection is necessary.
5.4 Algorithm Deployment and Optimization
To embed my state-of-health and thermal-runaway algorithms into the cloud platform, I packaged each algorithm as an independent Python module. The module receives a cleaned segment of raw data and outputs the health indicator or fault score. I used asynchronous task queues for computationally-intensive inference when the time-frequency images were processed by the CNN-KPCA module. The task queue returns an immediate response to the frontend and then executes the model in the background, preventing long waiting times for the user.
I also implemented caching for frequently used data, such as vehicle static parameters and algorithm thresholds. Database requests were optimized by combining irrelevant queries and by using composite indexes on the timestamp and vehicle identifier. Through these optimizations, the platform maintains stable responsiveness even when the connected fleet grows. In addition, the platform allows the integration of future algorithms without rewriting the frontend, because the backend interface is modular.
6. Conclusion and Outlook
In this work, I studied safety monitoring algorithms for traction batteries throughout their complete life cycle and deployed the algorithms on a cloud platform. The major contributions and conclusions can be summarized as follows.
First, I established a reliable dataset foundation for algorithm research. I processed massive real-world vehicle data by segmentation, anomaly detection, and cleaning. I also designed a simulated ageing experiment for traction battery packs by combining real-world driving profiles and accelerated charging/discharging cycles. The laboratory dataset provided a true reference capacity for state-of-health validation, which is absent in purely real-world cloud data.
Second, I proposed an inconsistency-based state-of-health estimation method for traction batteries. The method extracts robust voltage baselines, aligns cell voltage trajectories using dynamic time warping, calculates their similarity, and estimates a probability density distribution with Gaussian kernel functions. The inconsistency index obtained from the distribution has a strong correlation with battery-pack capacity. Real-vehicle validation showed an average Pearson correlation coefficient of 0.921, and the laboratory experiment confirmed the estimation error was about two percent. This method has practical value because it needs only low-sampling-rate voltage data, does not require a complex model training process, and works across different battery chemistries.
Third, I proposed a multi-modal thermal-runaway warning framework for a traction battery. It combines the charging resistance, a cumulative trend skewing measurement, and time-frequency images as fault features. The image features are processed by a CNN-KPCA module, then fused with normalized numerical features, and finally evaluated through a recursive centroid-to-cell distance diagnostic module. The framework was validated on quaternary lithium and lithium iron phosphate traction battery packs in both passenger cars and city buses. The average warning time reached eleven days before thermal runaway, while the false alarm rate for normal vehicles was very low.
Fourth, I developed a cloud-based safety monitoring platform for traction batteries that integrates the algorithms into practical operation. The platform uses MySQL for data storage, a Python backend for algorithm deployment, and HTML/CSS/JavaScript for user visualization. It supports real-time status monitoring, historical data tracing, state-of-health overview, safety-risk overview, and cell-level details. The platform demonstrates that the proposed algorithms can be deployed in an engineering-oriented system and can provide continuous protection for electric vehicle traction batteries.
There are still several limitations in my research. First, the data preprocessing still involves some manual rules to exclude anomalous charging or discharging segments. This manual step may become a bottleneck when the platform is scaled to a very large fleet. Future work should incorporate automatic state classification using deep time-series models. Second, the inconsistency-based state-of-health estimator relies on enough cells in a pack; when a pack has very few parallel channels, the distribution of voltages becomes less informative. A hybrid method that combines capacity-incremental analysis with inconsistency could further improve robustness. Third, the thermal-runaway warning threshold was selected based on the available thermal-runaway cases. In the future, more labeled cases and a more advanced ensemble model may increase the accuracy of emergency grading.
Overall, this research provides an integrated solution for monitoring traction battery health and safety from real vehicle data to cloud deployment. With the rapid development of intelligent transportation and big-data infrastructure, I believe that the cloud-centered safety monitoring approach will play an increasingly important role in improving traction battery safety and electric vehicle sustainability.
