<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1334558</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1334558</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A data-driven early warning method for thermal runaway of energy storage batteries and its application in retired lithium batteries</article-title>
<alt-title alt-title-type="left-running-head">Chen et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fenrg.2023.1334558">10.3389/fenrg.2023.1334558</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Fuxin</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/project-administration/"/>
<role content-type="https://credit.niso.org/contributor-roles/resources/"/>
<role content-type="https://credit.niso.org/contributor-roles/supervision/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Xiaolin</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/"/>
<role content-type="https://credit.niso.org/contributor-roles/funding-acquisition/"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Jin</surname>
<given-names>Junwu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Qin</surname>
<given-names>Yujie</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<role content-type="https://credit.niso.org/contributor-roles/data-curation/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Chen</surname>
<given-names>Yangming</given-names>
</name>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2570439/overview"/>
<role content-type="https://credit.niso.org/contributor-roles/investigation/"/>
<role content-type="https://credit.niso.org/contributor-roles/methodology/"/>
<role content-type="https://credit.niso.org/contributor-roles/software/"/>
<role content-type="https://credit.niso.org/contributor-roles/validation/"/>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Electromechanical Engineering Institute</institution>, <institution>PowerChina Huadong Engineering Co. Ltd.</institution>, <addr-line>Hangzhou</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Electrical and Information Engineering</institution>, <institution>Tianjin University</institution>, <addr-line>Tianjin</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>School of Electrical Engineering</institution>, <institution>Chongqing University</institution>, <addr-line>Chongqing</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1249542/overview">Haijun Ruan</ext-link>, Imperial College London, United Kingdom</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2400096/overview">Sujal Bhavsar</ext-link>, Ascend Analytics, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2093408/overview">Kai Yang</ext-link>, University of Surrey, United Kingdom</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Yangming Chen, <email>chenym@cqu.edu.cn</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>31</day>
<month>01</month>
<year>2024</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1334558</elocation-id>
<history>
<date date-type="received">
<day>07</day>
<month>11</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>31</day>
<month>12</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2024 Chen, Chen, Jin, Qin and Chen.</copyright-statement>
<copyright-year>2024</copyright-year>
<copyright-holder>Chen, Chen, Jin, Qin and Chen</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>The safety of battery energy storage systems (BES) is of paramount importance for societal development and the wellbeing of the people. This is particularly true for retired batteries, as their performance degradation increases the likelihood of thermal runaway occurrences. Existing early warning methods for BES thermal runaway face two main challenges: mechanism-based research methods only consider a single operating state, making their application and promotion difficult; while data-driven methods based on supervised learning struggle with limited sample sizes. To address these issues, this paper proposes a data-driven early warning method for BES thermal runaway. The method utilizes unsupervised learning to create a framework that measures BES differences through reconstruction errors, enabling effective handling of limited samples. Additionally, ensemble learning is employed to enhance the method&#x2019;s stability and quantify the probability of BES experiencing thermal runaway. To accurately capture the time-varying behaviors of BES, such as voltage, temperature, current, and state of charge (SOC), and detect performance differences in BES before and after thermal runaway, a bidirectional long short-term memory (Bi-LSTM) network with an attention mechanism is utilized. This approach effectively extracts features from training data. Subsequently, a Case study was conducted using the actual operation data of retired lithium batteries to verify the effectiveness of the proposed method.</p>
</abstract>
<kwd-group>
<kwd>energy storage battery</kwd>
<kwd>data-driven method</kwd>
<kwd>unsupervised learning</kwd>
<kwd>thermal runaway warning</kwd>
<kwd>retired lithium batteries</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Energy Storage</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1 Introduction</title>
<p>Currently, lithium battery are primarily used in electric vehicles and energy storage stations. With the large-scale promotion of electric vehicles and energy storage stations, as well as the secondary use of retired lithium batteries, incidents of combustion and explosions caused by thermal runaway of lithium battery are not uncommon. According to incomplete statistics, there have been 32 fire and explosion incidents caused by thermal runaway in energy storage stations globally over the past decade. The combustion or explosion of lithium battery in energy systems poses a significant threat to the national economy and people&#x2019;s lives. The National Renewable Energy Lab (<xref ref-type="bibr" rid="B7">Doughty, 2012</xref>; <xref ref-type="bibr" rid="B27">Wang et al., 2012</xref>) considers early warning of lithium-ion battery thermal runaway as an important measure to safeguard people&#x2019;s lives and property. Retired batteries have a shorter lifespan compared to operating batteries. As cascading or reusing retired lithium battery is an important measure to improve the full life cycle utilization rate of lithium battery, retired batteries are more likely to approach the end of thermal runaway. Therefore, early warning of thermal runaway in retired batteries can ensure the personal safety of users.</p>
<p>The causes of lithium-ion battery thermal runaway can be divided into three categories: mechanical failure, electrical failure (<xref ref-type="bibr" rid="B28">Wen et al., 2012</xref>; <xref ref-type="bibr" rid="B26">Spotnitz et al., 2003</xref>), and thermal failure, with a common factor being internal short circuit (<xref ref-type="bibr" rid="B30">Zheng et al., 2013</xref>). The development time scale of internal short circuits in lithium battery, including retired batteries, can be as long as several hundred hours (<xref ref-type="bibr" rid="B10">Feng et al., 2014</xref>; <xref ref-type="bibr" rid="B2">Barnett, 2014</xref>). Initial symptoms may not be apparent, while the final stage can potentially lead to combustion and explosions within a short period of time. Therefore, the issue of thermal runaway prevention and control warning is of great significance. To solve the problem of thermal runaway prevention and control warning, the mainstream methods in academia are divided into three categories: experimental-based, model-based, and data-driven. Experimental-based methods can determine the temperature safety boundaries of batteries and guide battery system design. However, the accuracy of the experimental method depends on a large number of experiments (<xref ref-type="bibr" rid="B11">Feng et al., 2018</xref>), which can be unsafe and costly, making it difficult to promote and apply. Model-based methods mainly indirectly warn of thermal runaway by estimating the temperature rise, voltage change, or temperature distribution of the battery (<xref ref-type="bibr" rid="B24">Shah et al., 2016</xref>; <xref ref-type="bibr" rid="B3">Chalise et al., 2017</xref>; <xref ref-type="bibr" rid="B22">Ren et al., 2018</xref>). The advantage of this method is that the physical meaning is clear, but the disadvantage is that it is more suitable for a relatively simple working condition and may not be applicable to complex and variable real-world conditions (<xref ref-type="bibr" rid="B4">Chen et al., 2011</xref>; <xref ref-type="bibr" rid="B21">Ping et al., 2014</xref>).</p>
<p>The data-driven approach is one of the emerging research hotspots in this field. By using historical data, data models can be established to analyze the relationship between lithium battery voltage, temperature, current, SOC, and its thermal runaway. Its advantage is that it can reflect the real working conditions of the battery and avoid the study of the complex electrochemical mechanism inside the lithium battery. Currently, data-driven methods are mostly supervised methods, and the research idea is to obtain thermal runaway lithium battery data under specific working conditions through experimental methods, and use it as a label to train neural network models to distinguish the thermal runaway situation of lithium batteries (<xref ref-type="bibr" rid="B8">Fang et al., 2012</xref>; <xref ref-type="bibr" rid="B16">Hussein and Chehade, 2020</xref>). However, the above-mentioned supervised methods have the following problems: although there is a large amount of operational data for lithium batteries, the proportion of thermal runaway battery data is small, resulting in a small sample problem and low model accuracy. Literature (<xref ref-type="bibr" rid="B6">Ding et al., 2021</xref>) have used similarity theory to construct more thermal runaway data, which has alleviated the problem of small samples to some extent. However, the thermally runaway data constructed by theory differs from the actual data, which affects the accuracy of the model. Therefore, supervised methods have limitations in this problem.</p>
<p>Unsupervised methods can learn from unlabeled data sets and are insensitive to imbalanced data. This method is suitable for the problem of abnormal judgment of lithium batteries containing a large number of normal samples. In literature (<xref ref-type="bibr" rid="B29">Yi and Xu, 2021</xref>), unsupervised methods were used for battery fault diagnosis, mainly by classifying batteries based on feature distances. However, the differences between lithium batteries in the mid to pre-thermal runaway stages and normal batteries are very small, as shown in <xref ref-type="fig" rid="F1">Figures 1</xref>, <xref ref-type="fig" rid="F2">2</xref>. In the figures, thermal runaway battery data is labeled in red and blue, while normal battery data is labeled in gray. Using a simple distance calculation method for unsupervised clustering makes it difficult to distinguish thermal runaway lithium batteries. The current challenge is how to effectively extract the temporal characteristics (this paper regards the time-varying data information of potential thermal runaway batteries running for a long-time scale as temporal characteristics) of lithium battery voltage, temperature, SOC and other data during the thermal runaway process, and efficiently excavate the differences in features between thermal runaway lithium batteries and normal batteries, in order to improve model accuracy. The time series modeling of LSTM has been applied in the field of predicting the lifespan of automotive batteries, but it has not addressed the issue of thermal runaway of retired batteries (<xref ref-type="bibr" rid="B20">Ma et al., 2023a</xref>; <xref ref-type="bibr" rid="B19">Ma et al., 2023b</xref>). The concept of reconstruction error has made progress in other fields of anomaly detection (<xref ref-type="bibr" rid="B15">Hundman et al., 2018</xref>; <xref ref-type="bibr" rid="B23">Sakurada and Yairi, 2014</xref>).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Battery voltage <italic>versus</italic> time curve.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g001.tif"/>
</fig>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Battery temperature <italic>versus</italic> time curve.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g002.tif"/>
</fig>
<p>This paper proposes a data-driven lithium battery thermal runaway early warning method based on reconstruction error calculation to address the aforementioned problems. Firstly, an unsupervised and ensemble learning-based framework for data-driven electrochemical lithium battery thermal runaway early warning is established, and the accuracy of this framework depends on the feature extraction ability of the basic model. To this end, a lithium battery data features extraction method based on Bi-LSTM and attention mechanism is proposed. The method aims to identify potential thermally unstable lithium batteries under long-term real working conditions, and has a wider range of applications compared to traditional mechanism-based methods (such as repeated charge and discharge) for identifying thermally unstable batteries under single working conditions. In essence, supervised learning methods require a typical form of data pattern, but the mechanism of thermal runaway in decommissioned batteries is complex, and there is no uniform trend in the abnormal performance of multidimensional data. However, normal batteries do not lack training samples. The unsupervised learning method proposed in this article is to train a large number of normal battery data to form a model, and the cumulative amount of reconstruction error calculated by the model for thermal runaway batteries is significantly increased. Therefore, the method proposed in this article has a good early warning effect on the thermal runaway problem of decommissioned batteries. The effectiveness of the proposed method is verified by the real operating data of electric vehicle lithium batteries. The proposed method in this paper is also applicable to the thermal runaway early warning of retired lithium batteries. The main contributions of this article are as follows:<list list-type="simple">
<list-item>
<p>1) Establish a lithium battery thermal runaway early warning framework based on unsupervised and ensemble learning, which can effectively deal with the problem of small sample size. Firstly, the reconstruction error of lithium battery time series data is used to define the degree of difference between batteries, and the idea of using small reconstruction error for normal data and large reconstruction error for abnormal data is used to construct a reconstruction error-based basic model. Furthermore, an unsupervised learning-based electrochemical lithium battery thermal runaway early warning ensemble framework is established to quantify the probability of lithium battery thermal runaway, enhance model stability, and enable the basic model to accurately select thermally unstable lithium batteries in different validation sets.</p>
</list-item>
<list-item>
<p>2) Propose a lithium battery data feature extraction method based on Bi-LSTM and attention mechanism. Firstly, a lithium battery parameter time series feature extraction method based on Bi-LSTM is proposed, which effectively extracts the time-varying characteristics of lithium battery voltage, temperature, SOC, and other data during the thermal runaway process. Based on this, an attention mechanism-based data mining algorithm is proposed to solve the problem of different importance of each dimension data at different times, realize the differentiated weight learning of various lithium battery data at different times, and further reduce the missed diagnosis and misdiagnosis of the basic model for thermally unstable lithium batteries.</p>
</list-item>
</list>
</p>
</sec>
<sec id="s2">
<title>2 A basic model for theramal runaway failure warning of retired batteries based on reconstruction error calculation</title>
<p>The core idea of unsupervised learning is to mine potential rules in unlabeled data sets, so as to classify data. The reconstruction error is an important classification basis of unsupervised learning method. The reconstruction error is obtained by calculating the difference between the original data and the reconstructed data (<xref ref-type="fig" rid="F3">Figure 3</xref>). This paper uses unsupervised learning to measure the risk of thermal runaway failure of retired batteries. Its ideas are as follows: First, use the operating data of normal batteries to train the basic model; Subsequently, the operating status of the battery is determined by measuring the reconstruction error of the data to be determined. During the abnormal detection process of the battery to be tested, due to the difference between the thermal runaway failed battery data and the normal data used for training, the reconstruction error of the detection is relatively large; The normal battery data is close to the training samples, and the test reconstruction error is relatively small. Therefore, the reconstruction error of the battery data to be tested can serve as a criterion for determining whether the battery has thermal runaway failure.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Basic model for thermal runaway early warning of BES.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g003.tif"/>
</fig>
<p>The operating status of retired batteries can be described by variables such as battery voltage (V), current (I), state of charge (SOC), temperature (T), etc. These variables can be monitored in real-time through the Battery Management System (BMS). Due to the different dimensions and significant numerical differences of these variables, in order to ensure the training accuracy of the basic reconstruction model, it is necessary to first standardize the data of the energy storage battery samples. Due to the influence of changes in battery physical state on retired batteries, there may be some extreme data that deviates from the sample mean, and the z-score standardization method utilizes the overall information of the sample, which is less affected by extreme data. Therefore, this article chooses the z-score standardization method. The z-score standardization method utilizes sample mean and standard deviation for data preprocessing, as shown in Equation <xref ref-type="disp-formula" rid="e1">1</xref>:<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3bc;</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m2">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the sample value to be normalized, <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> represents the normalized sample value, <inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3bc;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the mean of the sample, <inline-formula id="inf4">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>&#x3c3;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the standard deviation of the sample, This thesis uses standardized variables as input feature vectors for the basic model.</p>
<p>The input vector of the basic model for thermal runaway failure warning of retired batteries can be recorded as <inline-formula id="inf5">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">M</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf6">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the input data, This data contains the voltage vector <inline-formula id="inf7">
<mml:math id="m8">
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, battery pack state of charge vector <inline-formula id="inf8">
<mml:math id="m9">
<mml:mrow>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mi mathvariant="bold-italic">C</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, total current vector <inline-formula id="inf9">
<mml:math id="m10">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, temperature vector <inline-formula id="inf10">
<mml:math id="m11">
<mml:mrow>
<mml:mi mathvariant="bold-italic">T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and statistical variables of energy storage battery cells <inline-formula id="inf11">
<mml:math id="m12">
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>. Each vector contains a time series, taking the total voltage as an example, <inline-formula id="inf12">
<mml:math id="m13">
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf13">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the total voltage value at time t in the time series, and <italic>N</italic> represents the total duration. Due to the fact that a set of retired batteries usually contains multiple battery cells, this article uses statistical methods to characterize the voltage characteristics of the cells, that is, <inline-formula id="inf14">
<mml:math id="m15">
<mml:mrow>
<mml:mi mathvariant="bold-italic">M</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> contains statistical variables such as voltage variance, mean, maximum, and minimum values of all cells in a set of battery data. The output is the reconstructed data of the input features, which can be written as <inline-formula id="inf15">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, The dimensions of the input and output variables are equal. The optimization objective of the model training process is to minimize the reconstruction error of input and output data, as shown in Equation <xref ref-type="disp-formula" rid="e2">2</xref>:<disp-formula id="e2">
<mml:math id="m17">
<mml:mrow>
<mml:mi>min</mml:mi>
<mml:mtext>&#xa0;</mml:mtext>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where <inline-formula id="inf16">
<mml:math id="m18">
<mml:mrow>
<mml:mi>J</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the reconstruction error between input data <inline-formula id="inf17">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and output data <inline-formula id="inf18">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <italic>m</italic> is the number of dimensions for <inline-formula id="inf19">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf20">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf21">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the element value at time <italic>t</italic> of the <italic>i</italic>th dimension in <inline-formula id="inf22">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf23">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the element value at time <italic>t</italic> of the <italic>i</italic>th dimension in <inline-formula id="inf24">
<mml:math id="m26">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. After the above basic model training is completed, it can be used to determine the thermal runaway failure of the energy storage battery to be detected. The reconstruction error of the energy storage battery to be tested is obtained through basic model calculation, and the discrimination rule is shown in Equation <xref ref-type="disp-formula" rid="e3">3</xref>:<disp-formula id="e3">
<mml:math id="m27">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>J</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2265;</mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>J</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf25">
<mml:math id="m28">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> represents the input of a certain energy storage battery to be judged; <inline-formula id="inf26">
<mml:math id="m29">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> represents the output of a certain energy storage battery to be judged; y represents the judgment result of the basic model on the energy storage battery to be judged; <italic>K</italic> represents the threshold for determining whether thermal runaway failure has occurred; <inline-formula id="inf27">
<mml:math id="m30">
<mml:mrow>
<mml:msup>
<mml:mi>J</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> represents the reconstruction error of the sample to be judged calculated from the basic model. If the reconstruction error <inline-formula id="inf28">
<mml:math id="m31">
<mml:mrow>
<mml:msup>
<mml:mi>J</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is greater than or equal to the set threshold <italic>K</italic>, the energy storage battery is judged as thermal runaway failure and assigned a value of 1; If the reconstruction error <inline-formula id="inf29">
<mml:math id="m32">
<mml:mrow>
<mml:msup>
<mml:mi>J</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is less than the set threshold <italic>K</italic>, the energy storage battery is judged as normal and assigned a value of 0. This article obtains the corresponding reconstruction error set by training different normal battery samples, and calculates the average value and standard deviation of this set. Generally, the reconstruction error at three standard deviations greater than the average value should be selected as the threshold. However, the safety of retired batteries is particularly important, as high threshold values can easily lead to thermal runaway failure of retired batteries; If the reconstruction error value at one standard deviation greater than the average value is used as the threshold <italic>K</italic>, it will cause too many normal retired batteries to be judged as abnormal. In summary, this article selects the reconstruction error value at exactly two standard deviations greater than the average value as the threshold <italic>K</italic>.</p>
<p>To illustrate the importance of various characteristic parameters of self-initiated thermal runaway failure, a basic model was used and the reconstruction errors of known thermal runaway failure battery voltage (V), current (I), state of charge (SOC), temperature (T), and statistical variables (M) were calculated using Equations <xref ref-type="disp-formula" rid="e4">4</xref>&#x2013;<xref ref-type="disp-formula" rid="e8">8</xref>:<disp-formula id="e4">
<mml:math id="m33">
<mml:mrow>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
<disp-formula id="e5">
<mml:math id="m34">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">S</mml:mi>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">O</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">C</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msubsup>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msubsup>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
<disp-formula id="e6">
<mml:math id="m35">
<mml:mrow>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>I</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">I</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
<disp-formula id="e7">
<mml:math id="m36">
<mml:mrow>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">T</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>T</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>
<disp-formula id="e8">
<mml:math id="m37">
<mml:mrow>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>M</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>Taking Equation <xref ref-type="disp-formula" rid="e4">4</xref> as an example: <inline-formula id="inf30">
<mml:math id="m38">
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the element value at time <italic>t</italic> in <inline-formula id="inf31">
<mml:math id="m39">
<mml:mrow>
<mml:msubsup>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>; <inline-formula id="inf32">
<mml:math id="m40">
<mml:mrow>
<mml:msubsup>
<mml:mi>v</mml:mi>
<mml:mrow>
<mml:mi>o</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> is the element value at time <italic>t</italic> in <inline-formula id="inf33">
<mml:math id="m41">
<mml:mrow>
<mml:msubsup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi mathvariant="bold-italic">o</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi mathvariant="bold-italic">t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>. Sum the above reconstruction errors to obtain the reconstruction error of the battery, as shown in Equation <xref ref-type="disp-formula" rid="e9">9</xref>.<disp-formula id="e9">
<mml:math id="m42">
<mml:mrow>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>I</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>T</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>M</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>Calculate the ratio of the reconstruction error of each feature to the total reconstruction error <inline-formula id="inf34">
<mml:math id="m43">
<mml:mrow>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> of the battery to obtain the distribution proportion of the reconstruction error. Taking the proportion of voltage reconstruction error as an example, as shown in Equation <xref ref-type="disp-formula" rid="e10">10</xref>:<disp-formula id="e10">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>V</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>/</mml:mo>
<mml:msubsup>
<mml:mi>J</mml:mi>
<mml:mi>X</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf35">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>V</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the proportion of voltage reconstruction error. Due to the normalization of the reconstruction errors in the calculation of various characteristic parameters of the battery, the proportion of reconstruction errors in each feature can to some extent reflect the cause of thermal runaway failure of the battery.</p>
</sec>
<sec id="s3">
<title>3 A thermal runaway failure warning method for energy storage battery based on Bi-LSTM and attention mechanism</title>
<p>To effectively enhance the feature extraction capability of the basic model, this section proposes an energy storage battery thermal runaway failure warning method based on Bidirectional Long Short-Term Memory (Bi-LSTM) and attention mechanism. The thermal runaway failure process of retired batteries often involves a time span of several hundred hours. Therefore, during the process of data reconstruction, the basic model needs to have the ability to handle long-term span information (<xref ref-type="bibr" rid="B13">Graves, 2012</xref>). Bi-LSTM (<xref ref-type="bibr" rid="B5">Cong et al., 2018</xref>) can effectively capture the features of long-term-span information, so this paper uses Bi-LSTM as the basic model. Its structure is shown in <xref ref-type="fig" rid="F4">Figure 4</xref> and is obtained by combining two layers of long short-term memory (LSTM) (<xref ref-type="bibr" rid="B14">Hochreiter and Schmidhuber, 1997</xref>) networks. The output of the hidden layer at time t can be calculated by Equations <xref ref-type="disp-formula" rid="e11">11</xref>&#x2013;<xref ref-type="disp-formula" rid="e13">13</xref>.<disp-formula id="e11">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
<disp-formula id="e12">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
<disp-formula id="e13">
<mml:math id="m48">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>b</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Basic model of BES feature extraction based on Bi-LSTM.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g004.tif"/>
</fig>
<p>Where <inline-formula id="inf36">
<mml:math id="m49">
<mml:mrow>
<mml:mi>L</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>T</mml:mi>
<mml:mi>M</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the operation process of the LSTM network, and <inline-formula id="inf37">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the forward hidden layer output at time <italic>t</italic> calculated using the input variables <inline-formula id="inf38">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf39">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf40">
<mml:math id="m53">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf41">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf42">
<mml:math id="m55">
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the previous hidden layer output <inline-formula id="inf43">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The calculation of the forward hidden layer output takes into consideration the influence of past hidden layer outputs on the current hidden layer output, as indicated by the blue circle in <xref ref-type="fig" rid="F4">Figure 4</xref>. <inline-formula id="inf44">
<mml:math id="m57">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the backward hidden layer output at time <italic>t</italic> calculated using the input variables <inline-formula id="inf45">
<mml:math id="m58">
<mml:mrow>
<mml:msub>
<mml:mi>V</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf46">
<mml:math id="m59">
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf47">
<mml:math id="m60">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf48">
<mml:math id="m61">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf49">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mi>M</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the next backward hidden layer output <inline-formula id="inf50">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The calculation considers the influence of future hidden layer outputs on the current hidden layer output, as indicated by the red circle in <xref ref-type="fig" rid="F4">Figure 4</xref>. Bi-LSTM uses the reconstruction error in Equation <xref ref-type="disp-formula" rid="e2">2</xref> as the loss function and updates the network&#x2019;s hidden layer output <inline-formula id="inf51">
<mml:math id="m64">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> using Equation <xref ref-type="disp-formula" rid="e13">13</xref>, represented by the yellow circle in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<p>When calculating the accumulated reconstruction error of energy storage battery data during a specific period <italic>N</italic>, the relative importance of each input variable in the reconstruction error at the current time can differ. Directly adding up the reconstruction error of the multi-dimensional time series of retired batteries as if it were single variable time series data can result in inaccurate anomaly detection. Thus, it is necessary to assign dynamic weights to the Bi-LSTM hidden layer concerning changing times. The attention mechanism can learn differences in the weight of features at different time points in time-series data (<xref ref-type="bibr" rid="B18">Kuo and Huang, 2018</xref>; <xref ref-type="bibr" rid="B9">Feng et al., 2020</xref>). Therefore, this section adds an attention mechanism layer to the Bi-LSTM-based reconstruction model, represented by the colorful circles in <xref ref-type="fig" rid="F4">Figure 4</xref>, which assigns different weight coefficients to feature vectors after passing through the attention mechanism layer. The input features of each time point in the basic model for thermal runaway failure warning of retired batteries undergo weight distribution using the attention mechanism. The resulting hidden layer output is updated and represents new inputs, <inline-formula id="inf52">
<mml:math id="m65">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> which use Equation <xref ref-type="disp-formula" rid="e14">14</xref>.<disp-formula id="e14">
<mml:math id="m66">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2033;</mml:mo>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf53">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the weight matrix of the attention mechanism layer, and the elements <inline-formula id="inf54">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in <inline-formula id="inf55">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are calculated using the similarity formula in Equation <xref ref-type="disp-formula" rid="e15">15</xref>:<disp-formula id="e15">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>l</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>Where <inline-formula id="inf56">
<mml:math id="m71">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf57">
<mml:math id="m72">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> represent the <italic>i</italic>th and <italic>j</italic>th elements of the Bi-LSTM hidden layer output <inline-formula id="inf58">
<mml:math id="m73">
<mml:mrow>
<mml:msubsup>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> at time <italic>t</italic>, and <italic>l</italic> is the dimension of the hidden layer output. Finally, the outputs <inline-formula id="inf59">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>V</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf60">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>I</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf61">
<mml:math id="m76">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mover accent="true">
<mml:mi>O</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf62">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>T</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf63">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>M</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>t</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are obtained through a fully connected layer, which are represented by the top green circle in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<p>In summary, to effectively extract the data features of energy storage battery group, including voltage (<italic>V</italic>), current (<italic>I</italic>), state of charge (<italic>SOC</italic>), temperature (<italic>T</italic>), and battery cell voltage variance, mean, maximum, and minimum values, this study comprehensively considers the time-series characteristics of energy storage battery operating data and the differentiation in feature weights. This expands the difference between the reconstruction errors of normal energy storage battery data and those experiencing thermal runaway and failure while calculating reconstruction error, further improving the accuracy of thermal runaway warning.</p>
</sec>
<sec id="s4">
<title>4 A thermal runaway failure warning method of retired batteries based on ensemble learning</title>
<p>The stability of the basic model for thermal runaway failure warning of retired batteries is defined as whether the model can accurately select the batteries that have experienced thermal runaway and failure in different test datasets. Due to the significant influence of the input sample set on the basic model parameters described in <xref ref-type="sec" rid="s3">Section 3</xref>, it is challenging to ensure the stability of the basic model. As the basic model will be used multiple times in the thermal runaway failure warning of retired batteries, its insufficient stability would increase the probability of misjudgment and omission during certain warning processes (<xref ref-type="bibr" rid="B25">Shi and Zhang, 2019</xref>). Ensemble learning (<xref ref-type="bibr" rid="B1">Bahdanau et al., 2014</xref>) uses the judgment results of multiple basic models to evaluate thermal runaway failure, which can enhance the stability of the model. Therefore, to ensure the stability of the basic model, this section further establishes an ensemble learning model for thermal runaway failure warning of retired batteries based on bagging algorithm. In ensemble learning, a multi-model training strategy is usually adopted to solve specific problems, which combines multiple basic models to construct a more precise and robust ensemble model while retaining their respective advantages. The core assumption of this strategy is that when combining basic models reasonably, the overall performance of the model can be further improved while retaining their strengths. The bagging algorithm in the ensemble model typically trains basic models independently and in parallel, and combine them by some deterministic averaging process. This is shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. By integrating the discriminant results of multiple basic models trained from different normal energy storage battery sample sets, the probability of thermal runaway failure <italic>P</italic> can be obtained as shown in Equation <xref ref-type="disp-formula" rid="e16">16</xref>.<disp-formula id="e16">
<mml:math id="m79">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Ensemble learning model for thermal runaway warning of energy storage battery based on bagging algorithm.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g005.tif"/>
</fig>
<p>Where <italic>P</italic> represents the probability of the energy storage battery being identified as experiencing thermal runaway and failure; <inline-formula id="inf64">
<mml:math id="m80">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the judgment result of the <italic>k</italic>th basic model for the energy storage battery, which can be calculated using Equation <xref ref-type="disp-formula" rid="e3">3</xref>; and <italic>n</italic> is the total number of basic models. The architecture of the basic models in the ensemble model shown in <xref ref-type="fig" rid="F5">Figure 5</xref> is the same, and they are trained on different normal energy storage battery data sets, with a total of <italic>n</italic> sample sets.</p>
<p>The ensemble stability mentioned in this paper can be described by the variance of the probability <italic>P</italic> calculated by the ensemble model (<xref ref-type="bibr" rid="B12">Friedman et al., 2021</xref>), denoted by <inline-formula id="inf65">
<mml:math id="m81">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>E</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, as shown in Equation <xref ref-type="disp-formula" rid="e17">17</xref>:<disp-formula id="e17">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>E</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>V</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>Where the average correlation between the basic models can be set to <inline-formula id="inf66">
<mml:math id="m83">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, the variance of the discriminant results of each basic model is <inline-formula id="inf67">
<mml:math id="m84">
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c3;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, and the variance of the ensemble model&#x2019;s discriminant result is negatively correlated with <italic>n</italic>, such that a larger <italic>n</italic> leads to smaller variance and greater stability of the model. In practice, due to limited sample data, the value of <italic>n</italic> in this study is determined based on the actual situation of the sample set.</p>
<p>The energy storage battery thermal runaway failure warning model based on the bagging algorithm uses the idea of ensemble learning to train a corresponding number of thermal runaway failure warning ensemble models by synthesizing multiple normal energy storage battery data of the same type, and calculates the thermal runaway failure warning probability using Equation <xref ref-type="disp-formula" rid="e16">16</xref>. Therefore, the accuracy of energy storage battery safety warning depends on the accuracy of the ensemble model. However, the above method cannot determine the optimal ensemble model, as there is no standard for selecting the basic models that make up the ensemble model. To determine the best ensemble model, we need to first understand the relationship between the accuracy of the basic models, the diversity of the basic models and the accuracy of the ensemble model. The error-divergence theory provides a theoretical basis for selecting the best ensemble model by describing the relationship between the accuracy of the ensemble model and the basic models. Specifically, using <italic>n</italic> basic models <inline-formula id="inf68">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>.</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to form an ensemble model, the output is obtained through weighted averaging, as shown in Equation <xref ref-type="disp-formula" rid="e18">18</xref>:<disp-formula id="e18">
<mml:math id="m86">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>Where <inline-formula id="inf69">
<mml:math id="m87">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the weight of basic model <inline-formula id="inf70">
<mml:math id="m88">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, subject to constraints <inline-formula id="inf71">
<mml:math id="m89">
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf72">
<mml:math id="m90">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. Given a sample <italic>x</italic>, the divergence of the <italic>i</italic>th basic model can be defined as:<disp-formula id="e19">
<mml:math id="m91">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>Where <inline-formula id="inf73">
<mml:math id="m92">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the output of the ensemble model.</p>
<p>The divergence of the ensemble model can be defined as the weighted average of the divergences of the basic models:<disp-formula id="e20">
<mml:math id="m93">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>Clearly, differences define the variation of the base model on the sample. While there are multiple definitions of error, this paper measures the error of the base model using mean squared error. Assuming that the true discrimination result of sample <italic>x</italic> is <inline-formula id="inf74">
<mml:math id="m94">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, the errors of the base model <inline-formula id="inf75">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and ensemble model <inline-formula id="inf76">
<mml:math id="m96">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> can be expressed as follows:<disp-formula id="e21">
<mml:math id="m97">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<disp-formula id="e22">
<mml:math id="m98">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>The weighted average error of all the base models on the overall sample can be represented as follows:<disp-formula id="e23">
<mml:math id="m99">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>E</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
<p>By rearranging Equation <xref ref-type="disp-formula" rid="e20">20</xref>:<disp-formula id="e24">
<mml:math id="m100">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
<p>Combining Equations <xref ref-type="disp-formula" rid="e18">18</xref>&#x2013;<xref ref-type="disp-formula" rid="e22">22</xref> and constraint <inline-formula id="inf77">
<mml:math id="m101">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, Equation <xref ref-type="disp-formula" rid="e24">24</xref> can be further transformed to:<disp-formula id="e25">
<mml:math id="m102">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>n</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi>E</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>Simplifying the above equation results in:<disp-formula id="e26">
<mml:math id="m103">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>H</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi>E</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>A</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>&#x7c;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>According to Equation <xref ref-type="disp-formula" rid="e26">26</xref>, the error of the ensemble model is determined by the weighted average of all the base models on the overall sample and the weighted average of the divergence of the base model. The second item on the right-hand side of the equation is positive and subtracted from the first item, which theoretically ensures that the error after integration is lower than the weighted average error of the base model. Moreover, the higher the accuracy of each base model, and the greater their differences, the higher the accuracy of the integrated model. Therefore, to further optimize the warning model for thermal runaway failure of retired batteries based on the bagging algorithm, this subsection adopts the integrated model optimization method proposed in [70] based on the conclusion obtained from Equation <xref ref-type="disp-formula" rid="e26">26</xref>. Given <italic>M</italic> basic models and <italic>m</italic> battery samples waiting for discrimination, the discrimination results are recorded in matrix <italic>P</italic>, and the element <inline-formula id="inf78">
<mml:math id="m104">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in the <italic>i</italic>th row and <italic>j</italic>th column of <italic>P</italic> is shown as Equation <xref ref-type="disp-formula" rid="e27">27</xref>:<disp-formula id="e27">
<mml:math id="m105">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>basical</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>model</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>Correct</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>judgment</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>of</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>on</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>energy</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>storage</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>battery</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>sample</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mtext>basical</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>model</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>Wrong</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>judgment</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>of</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtext>on</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>energy</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>storage</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>battery</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mtext>sample</mml:mtext>
<mml:mo>&#x2006;</mml:mo>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>
</p>
<p>Let <inline-formula id="inf79">
<mml:math id="m106">
<mml:mrow>
<mml:mi>U</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>P</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, then the diagonal elements <inline-formula id="inf80">
<mml:math id="m107">
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of <inline-formula id="inf81">
<mml:math id="m108">
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> represent the number of times the base model <inline-formula id="inf82">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> makes an incorrect judgment, reflecting the weighted average error of all the base models on the overall sample, while the off-diagonal elements <inline-formula id="inf83">
<mml:math id="m110">
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represent the number of times both the base models <inline-formula id="inf84">
<mml:math id="m111">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf85">
<mml:math id="m112">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> make a mistake simultaneously, reflecting the divergence of the ensemble model. Therefore, <inline-formula id="inf86">
<mml:math id="m113">
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> contains the errors of each base model as well as their divergence, enabling effective measurement of the error of the integrated model. Normalize the elements in <inline-formula id="inf87">
<mml:math id="m114">
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> using Equation <xref ref-type="disp-formula" rid="e28">28</xref>. According to the definition of the integrated model error in Equation <xref ref-type="disp-formula" rid="e26">26</xref>, the integrated model performs best when each element in <inline-formula id="inf88">
<mml:math id="m115">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>U</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is minimized.<disp-formula id="e28">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>U</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2260;</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>
</p>
<p>Where <italic>m</italic> is the number of samples to be discriminated. The optimization problem of the integrated model can be transformed into the following quadratic integer programming problem:<disp-formula id="e29">
<mml:math id="m117">
<mml:mrow>
<mml:munder>
<mml:mi>min</mml:mi>
<mml:mi>x</mml:mi>
</mml:munder>
<mml:mi>F</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mover accent="true">
<mml:mi>U</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>
<disp-formula id="e30">
<mml:math id="m118">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
<disp-formula id="e31">
<mml:math id="m119">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
</p>
<p>Where the binary scalar <inline-formula id="inf89">
<mml:math id="m120">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> indicates whether the <italic>i</italic>th base model is selected for the integrated model, and parameter <italic>s</italic> denotes the optimized size of the integrated model. Thus, based on the theoretical foundation of determining the optimal integrated model using equation <xref ref-type="disp-formula" rid="e26">26</xref>, a quadratic integer programming model can be established by Equations <xref ref-type="disp-formula" rid="e27">27</xref>&#x2013;<xref ref-type="disp-formula" rid="e31">31</xref> to find the optimal warning model for thermal runaway failure of retired batteries with a given integrated model size.</p>
<p>In summary, this section proposes a thermal runaway warning method for retired batteries based on ensemble learning. Firstly, the probability of thermal runaway and failure of batteries is quantified using ensemble learning, and a thermal runaway failure warning method for retired batteries based on the bagging algorithm is proposed to ensure the stability of the algorithm. Then, a warning method for thermal runaway failure of retired batteries is proposed based on ensemble optimization, which can select the optimal integrated model to further improve the warning accuracy under the premise of reducing the size of the integrated model.</p>
</sec>
<sec id="s5">
<title>5 Warning process for thermal runaway failure of retired batteries</title>
<p>This paper proposes a data-driven thermal runaway warning method for retired batteries. The overall flowchart is shown in <xref ref-type="fig" rid="F6">Figure 6</xref>, and the specific steps are described as follows:</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Data-driven thermal runaway early warning algorithm process of BES.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g006.tif"/>
</fig>
<p>
<statement content-type="step" id="Step_1">
<label>Step 1:</label>
<p>Data preprocessing</p>
<p>Firstly, to eliminate the impact of different units on the calculation of reconstruction errors, normalization is performed on different dimensional features <inline-formula id="inf90">
<mml:math id="m121">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> using Equation <xref ref-type="disp-formula" rid="e1">1</xref> to obtain <inline-formula id="inf91">
<mml:math id="m122">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. Then, multi-dimensional time-series feature vectors <inline-formula id="inf92">
<mml:math id="m123">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mrow>
<mml:mi mathvariant="bold-italic">i</mml:mi>
<mml:mi mathvariant="bold-italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are constructed using the method in <xref ref-type="sec" rid="s2">Section 2</xref>. Finally, <italic>n</italic> normal battery data sets in the data set are used as <italic>n</italic> training sets, and the remaining battery data set is used as the test set.</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_2">
<label>Step 2:</label>
<p>Model training</p>
<p>Firstly, based on the feature mining method for energy storage battery data using Bi-LSTM and attention mechanism, a basic model is constructed including Equations <xref ref-type="disp-formula" rid="e2">2</xref>, <xref ref-type="disp-formula" rid="e3">3</xref> and Equations <xref ref-type="disp-formula" rid="e11">11</xref>&#x2013;<xref ref-type="disp-formula" rid="e15">15</xref>. Then, <italic>n</italic> basic models are sequentially trained based on <italic>n</italic> training sets obtained in Step 1. The reconstruction error set is obtained, and the reconstruction error threshold <italic>K</italic> is calculated from the reconstruction error set. Finally, an ensemble model is formed by combining the n basic models according to the method in <xref ref-type="sec" rid="s4">Section 4</xref>.</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_3">
<label>Step 3:</label>
<p>Model optimization</p>
<p>Firstly, the optimization objective of the ensemble model is designed according to Equations <xref ref-type="disp-formula" rid="e27">27</xref>&#x2013;<xref ref-type="disp-formula" rid="e29">29</xref>. Then, given the optimized size of the ensemble model, the optimal combination of the ensemble model with a given size s is determined using the branch and bound method based on the quadratic integer programming model in <xref ref-type="sec" rid="s4">Section 4</xref>.</p>
</statement>
</p>
<p>
<statement content-type="step" id="Step_4">
<label>Step 4:</label>
<p>Calculation of the samples to be judged</p>
<p>A given energy storage battery sample to be judged is input into the ensemble model. Eq. <xref ref-type="disp-formula" rid="e2">2</xref> is used to calculate the reconstruction error <inline-formula id="inf93">
<mml:math id="m124">
<mml:mrow>
<mml:msup>
<mml:mi>J</mml:mi>
<mml:mo>&#x2032;</mml:mo>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> of the sample, and it is compared with the given reconstruction error threshold K. The output <inline-formula id="inf94">
<mml:math id="m125">
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (0/1) of each basic model is determined, and the warning probability <italic>P</italic> is calculated using Equation <xref ref-type="disp-formula" rid="e16">16</xref>. The warning probability threshold can be set as a variable for different industrial requirements and can be selected based on different safety/economic considerations. This paper regards retired batteries with a warning probability threshold exceeding 70% as potentially thermally runaway-failed batteries.</p>
</statement>
</p>
</sec>
<sec id="s6">
<title>6 Example analysis</title>
<p>Due to a significant proportion of retired batteries being present in the thermal runaway batteries, this study employs retired lithium battery for the numerical simulation tests. This paper collected actual retired batteries data from a domestic company, involving 48 batteries in total, including voltage, current, state of charge, temperature, and other data for each group of batteries. The time span is about half a year for all data sets, with a sampling frequency of 0.1&#xa0;Hz. Two groups of retired batteries caused combustion due to thermal runaway failure. All simulation examples in this chapter were tested on hardware with an Intel(R) Core (TM) i7-9750H CPU @2.60GHz and 24&#xa0;GB RAM.</p>
<p>This paper will compare the following methods (M0-M5), as shown in <xref ref-type="table" rid="T1">Table 1</xref>. M1 is the basic model of this paper&#x2019;s proposed unsupervised learning energy storage battery thermal runaway warning model based on reconstruction error calculation. The model uses Bi-LSTM, with 2 hidden layers, and 32 neurons per layer. The initial learning rate is set to 0.001, and the optimizer used is Adaptive Moment Estimation (ADAM). M2-M4 are the proposed ensemble models without optimization, and M5 is this paper&#x2019;s proposed energy storage battery thermal runaway failure warning method based on ensemble optimization.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Comparison of multiple warning methods for thermal runaway failure of retired batteries<sc>.</sc>
</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Comparison method</th>
<th align="center">Comparison purpose</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">M0, M1</td>
<td align="center">Verify the advantages of the basic model over the unsupervised clustering method based on distance calculation</td>
</tr>
<tr>
<td align="center">M1, M2</td>
<td align="center">Verify the stability advantage of the ensemble model compared to the basic model</td>
</tr>
<tr>
<td align="center">M2, M3, M4</td>
<td align="center">Verify the effectiveness of the energy storage battery thermal runaway failure warning method based on Bi-LSTM and attention mechanism</td>
</tr>
<tr>
<td align="center">M4, M5</td>
<td align="center">Verify the effectiveness of the thermal runaway failure warning method for retired batteries based on ensemble optimization</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>M0: Unsupervised clustering method based on K-means;</p>
<p>M1: Energy storage battery thermal runaway failure warning model based on reconstruction error calculation (as the basic model). The model uses Bi-LSTM with 2 hidden layers, 32 neurons per layer, an initial learning rate of 0.001, and the ADAM optimizer (<xref ref-type="bibr" rid="B17">Kingma and Ba, 2014</xref>);</p>
<p>M2: The basic model is M1, and an ensemble learning framework is further adopted to form the ensemble model;</p>
<p>M3: The ensemble model framework is the same as M2, but the basic model uses a fully connected neural network with 2 hidden layers, 32 neurons per layer, an initial learning rate of 0.001, and the ADAM optimizer;</p>
<p>M4: The same as M2, but the basic model is a Bi-LSTM network with an added attention mechanism;</p>
<p>M5: The same as M4, but after optimization of the basic model selection in the ensemble model through a quadratic integer programming model.</p>
<p>This paper evaluates the algorithm performance using commonly used industrial metrics, as shown in Equations <xref ref-type="disp-formula" rid="e32">32</xref>&#x2013;<xref ref-type="disp-formula" rid="e35">35</xref>:<disp-formula id="e32">
<mml:math id="m126">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mi>C</mml:mi>
<mml:mi>C</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>N</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>
<disp-formula id="e33">
<mml:math id="m127">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>P</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>
<disp-formula id="e34">
<mml:math id="m128">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mi>C</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mi>P</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(34)</label>
</disp-formula>
<disp-formula id="e35">
<mml:math id="m129">
<mml:mrow>
<mml:mi>F</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>P</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mi>C</mml:mi>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(35)</label>
</disp-formula>
</p>
<p>Where <italic>TP</italic> represents the number of samples where the true value is considered positive, while the model considers it positive, <italic>FN</italic> represents the number of samples whose true values are considered positive, while the model considers them negative, <italic>FP</italic> represents the number of samples considered negative by the true value, while the model considers positive by the model, <italic>TN</italic> represents the number of samples whose true value is considered negative, while the model considers negative, <italic>TP/TN</italic> represents the number of positive samples predicted correctly or negative samples predicted correctly, and <italic>FP</italic>/<italic>FN</italic> represents the number of negative samples predicted as positive or positive samples predicted as negative. <italic>ACC</italic> is accuracy; <italic>PRE</italic> is precision; <italic>REC</italic> is recall; <italic>F</italic>1 is the harmonic mean of precision and recall, which can simultaneously consider the precision and recall of the classification model. All of these indices have a better model classification performance when the values are larger. In addition, this paper sets up the sorting index for battery thermal runaway failure warning, which calculates the warning probability of all batteries in the same test set, sorts the probability values in descending order, records the probability rank values of the two known thermal runaway failure batteries, and the smaller the rank value of the thermal runaway failure battery, the better the model performance.</p>
<sec id="s6-1">
<title>6.1 Validation of effectiveness for thermal runaway failure warning of retired batteries</title>
<p>To compare the effects of the basic model for the thermal runaway failure warning of retired batteries based on unsupervised learning and the unsupervised clustering method based on distance calculation, M0 and M1 were compared. The following example was set: M1 randomly selected 20 sets of normal energy storage battery samples out of 48 groups of battery data as the training set and used the remaining 28 sets of energy storage battery data (including two sets of thermal runaway failure batteries) as the test set. M0 used the same test set data values as M1 and conducted direct clustering analysis on the test set, and the results are shown in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Comparison of warning effects for thermal runaway failure between M0 and M1.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">ACC/%</th>
<th align="center">PRE/%</th>
<th align="center">REC/%</th>
<th align="center">F1</th>
<th align="center">False negative</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">M0</td>
<td align="center">78.6</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">M1</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">No</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The accuracy of the M1 method was 14.3% higher than that of the M0 method, and the recall rate of the M1 method reached 100%, which means no true thermal runaway failure energy storage battery was missed. The recall rate of M0 was 0%, and all true thermal runaway failure retired batteries were missed. These results indicate that there is a weak difference between the data of retired batteries in the early and middle stages of thermal runaway failure and normal batteries, and it is difficult to distinguish thermal runaway failure retired batteries using only a simple distance calculation method for unsupervised clustering. This also validates the effectiveness of the proposed basic model M1 in this paper.</p>
</sec>
<sec id="s6-2">
<title>6.2 Validation of effectiveness for ensemble models of thermal runaway failure warning of retired batteries based on bagging algorithm</title>
<p>Ensemble models can improve the stability of basic models. In order to illustrate the stability performance of the ensemble model, this section compared the warning indicators of M1 and M2. The training set and test set of M1 were the same as those in <xref ref-type="sec" rid="s1">Section 1</xref>, while the training set and test set of M2 were the same as those in M1, except that M2 used each set of normal battery data to train a basic model, resulting in 20 basic models in total. M1 and M2 were tested three times each with different 20 sets of normal battery data randomly selected as the training set, and the remaining 28 batteries (including two sets of thermal runaway failure batteries) were used as the test set. The training set and test set of M2 were consistent with those of M1 in each test.</p>
<p>According to <xref ref-type="table" rid="T3">Table 3</xref>, for the basic model M1, the evaluation indicators varied greatly in the three tests, and the accuracy was low in the first and third evaluations while high in the second evaluation. In contrast, the evaluation indicators of the ensemble model M2 were consistently high in all three tests, and except for a slight fluctuation in the warning ranking value of thermal runaway failure batteries, other indicators remained unchanged. These results demonstrate that the ensemble model for the thermal runaway failure warning of retired batteries has higher stability compared to the basic model. Although the total time required for training and testing for M2 is longer than that for M1, the time spent at the hundred-second level does not significantly influence the thermal runaway failure warning compared to the long-term use of batteries. Thus, this section verifies the stability advantage of the ensemble model over the basic model.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Comparison of warning effects for thermal runaway failure between M1 and M2.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">Numer of tests</th>
<th align="center">ACC/%</th>
<th align="center">PRE/%</th>
<th align="center">REC/%</th>
<th align="center">F1/%</th>
<th align="center">Sort</th>
<th align="center">Total time/s</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="3" align="center">M1</td>
<td align="center">1</td>
<td align="center">85.7</td>
<td align="center">25</td>
<td align="center">50</td>
<td align="center">0.33</td>
<td align="center">3, 5</td>
<td align="center">6.4</td>
</tr>
<tr>
<td align="center">2</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">1, 2</td>
<td align="center">6.9</td>
</tr>
<tr>
<td align="center">3</td>
<td align="center">85.7</td>
<td align="center">25</td>
<td align="center">50</td>
<td align="center">0.33</td>
<td align="center">2, 5</td>
<td align="center">5.3</td>
</tr>
<tr>
<td rowspan="3" align="center">M2</td>
<td align="center">1</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">1, 4</td>
<td align="center">86.7</td>
</tr>
<tr>
<td align="center">2</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">1, 3</td>
<td align="center">90.1</td>
</tr>
<tr>
<td align="center">3</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">1, 3</td>
<td align="center">89.6</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s6-3">
<title>6.3 Validation of the effectiveness of thermal runaway failure warning method for energy</title>
<p>Storage Batteries Based on Bi-LSTM and Attention Mechanism The accurate feature mining method for energy storage battery data aims to improve the accuracy of each basic model in the integrated model. In order to demonstrate the improvement in model accuracy of this method, the following experiment was conducted: M2 randomly selected 20 sets of normal energy storage battery samples out of 48 groups of battery data as the training set and used the remaining 28 sets of energy storage battery data (including two sets of thermal runaway failure batteries) as the test set. The training set and test sets of M3 and M4 were the same as those of M2. The results are shown in <xref ref-type="table" rid="T4">Tables 4</xref>, <xref ref-type="table" rid="T5">5</xref>, and <xref ref-type="fig" rid="F7">Figure 7</xref>.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Performance comparison of integration models based on different learning strategies.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">ACC/%</th>
<th align="center">PRE/%</th>
<th align="center">REC/%</th>
<th align="center">F1/%</th>
<th align="center">False negative</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">M2</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">85.7</td>
<td align="center">25</td>
<td align="center">50</td>
<td align="center">0.33</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">M4</td>
<td align="center">92.9</td>
<td align="center">50</td>
<td align="center">100</td>
<td align="center">0.67</td>
<td align="center">No</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T5" position="float">
<label>TABLE 5</label>
<caption>
<p>Early warning probability and sequencing of thermal runaway energy storage battery.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Faulty battery</th>
<th align="center">Model</th>
<th align="center">P%</th>
<th align="center">Sort</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="3" align="center">Faulty battery 1</td>
<td align="center">M2</td>
<td align="center">85</td>
<td align="center">4</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">45</td>
<td align="center">8</td>
</tr>
<tr>
<td align="center">M4</td>
<td align="center">90</td>
<td align="center">1</td>
</tr>
<tr>
<td rowspan="3" align="center">Faulty battery 2</td>
<td align="center">M2</td>
<td align="center">75</td>
<td align="center">3</td>
</tr>
<tr>
<td align="center">M3</td>
<td align="center">70</td>
<td align="center">4</td>
</tr>
<tr>
<td align="center">M4</td>
<td align="center">80</td>
<td align="center">2</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>The top 10 early warning probability values of early warning probability.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g007.tif"/>
</fig>
<p>According to <xref ref-type="table" rid="T4">Table 4</xref>, since M2 and M4 considered the temporal features of data, there was no missing detection of thermal runaway failure retired batteries, and the classification accuracy, precision, and recall rates increased by 7.2%, 25%, and 50%, respectively, compared to M3. To further explain the advantage of the method proposed in this paper, M4 was analyzed for warning probability and sorting index for thermal runaway failure retired batteries. According to <xref ref-type="table" rid="T4">Table 5</xref>, for thermal runaway failure retired batteries, M3 had a warning probability of only 45% and 70% for the two groups of thermal runaway failure retired batteries, and the above two groups were ranked only 8 and 4 in terms of thermal runaway failure probability among 28 retired batteries. Compared with M3, M2 and M4 significantly improved the warning probability of the two groups of thermal runaway failure retired batteries to 75%, 85%, and 80%, 90%, respectively. Further comparison between M2 and M4 shows that the attention mechanism set in M4 effectively improved the model accuracy.</p>
<p>To further illustrate the difference in warning probability between thermal runaway failure and normal batteries in the prediction results of M4, the warning probability values for the top 10 ranked cases in the test set were compared and shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. The red bars with warning probability values higher than represent thermal runaway failure batteries, while the blue bars with warning probability values lower than represent normal batteries. According to <xref ref-type="fig" rid="F7">Figure 7</xref>, there was a significant difference in warning probability values between the third-ranked normal energy storage battery and the thermal runaway failure battery. This result demonstrates the effectiveness of M4.</p>
</sec>
<sec id="s6-4">
<title>6.4 Validation of the effectiveness of thermal runaway failure warning method for retired batteries based on ensemble optimization</title>
<p>The ensemble optimization-based thermal runaway failure warning method proposed in this chapter aims to provide the optimal ensemble model based on error-divergence theory, given a fixed ensemble model size. In order to demonstrate the improvement in prediction accuracy of the ensemble model using this method, the following experiment was conducted: M4 randomly selected 24 sets of normal energy storage battery samples out of 48 groups of battery data as the training set (the original ensemble model), and used the remaining 24 sets of energy storage battery data (including two sets of thermal runaway failure batteries) as the test set. The optimized ensemble model size was set to 12, and as a control group, three models with a size of 12 were randomly selected from the 24 training sets for combination, with the test set unchanged. The results are shown in <xref ref-type="table" rid="T6">Table 6</xref> and <xref ref-type="fig" rid="F8">Figure 8</xref>.</p>
<table-wrap id="T6" position="float">
<label>TABLE 6</label>
<caption>
<p>Performance comparison of integrated models before and after optimization<sc>.</sc>
</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">Number of models</th>
<th align="center">ACC/%</th>
<th align="center">REC/%</th>
<th align="center">False negative</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Ensemble optimization (M5)</td>
<td align="center">12</td>
<td align="center">93</td>
<td align="center">100</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">Random ensemble 1(M4)</td>
<td align="center">12</td>
<td align="center">93</td>
<td align="center">100</td>
<td align="center">No</td>
</tr>
<tr>
<td align="center">Random ensemble 2(M4)</td>
<td align="center">12</td>
<td align="center">86</td>
<td align="center">50</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">Random ensemble 3(M4)</td>
<td align="center">12</td>
<td align="center">86</td>
<td align="center">50</td>
<td align="center">Yes</td>
</tr>
<tr>
<td align="center">Original ensemble (M4)</td>
<td align="center">24</td>
<td align="center">86</td>
<td align="center">100</td>
<td align="center">No</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Effect comparison of thermal runaway warning models before and after optimization.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g008.tif"/>
</fig>
<p>According to <xref ref-type="table" rid="T6">Table 6</xref>, compared with the original ensemble model (M4), the ensemble optimization method (M5) achieved higher accuracy with the same number of ensemble models. It performed better than random ensemble 2 and 3, without any missed detection of thermal runaway failure batteries, and had higher accuracy and recall rates. To further illustrate the effectiveness of the optimized model, the warning probability values of batteries with high warning probabilities in different models were compared in <xref ref-type="fig" rid="F8">Figure 8</xref>. Batteries labeled 1 and 2 are real thermal runaway failure batteries, and batteries labeled 3, 4, 5, and 6 have high warning probabilities and are normal batteries. As shown in <xref ref-type="fig" rid="F8">Figure 8</xref>, both real thermal runaway failure batteries were calculated to have a thermal runaway failure warning probability value of 100% by the optimized model, which is significantly higher than that of the original model and random ensemble models with the same size. In summary, ensemble optimization improved the accuracy of the original model and performed even better than random ensemble models.</p>
</sec>
<sec id="s6-5">
<title>6.5 Importance analysis of various features of thermal runaway failure batteries</title>
<p>Using M5, the reconstruction errors and percentages of each feature were calculated for two sets of thermal runaway failure batteries according to Equations <xref ref-type="disp-formula" rid="e4">4</xref>&#x2013;<xref ref-type="disp-formula" rid="e10">10</xref>, as shown in <xref ref-type="fig" rid="F9">Figures 9</xref>, <xref ref-type="fig" rid="F10">10</xref>. The darker the color in the figure, the larger the percentage. From the figures, it can be seen that the reconstruction errors of the two sets of thermal runaway failure batteries are mainly distributed among three factors: voltage, temperature, and SOC. In particular, voltage has the largest impact on the overall reconstruction error, accounting for 34.99% and 42.87% respectively for the two sets, indicating that voltage is the most important factor.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Reconstruction error distribution of No. 1 thermal runaway battery.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g009.tif"/>
</fig>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Reconstruction error distribution of No. 2 thermal runaway battery.</p>
</caption>
<graphic xlink:href="fenrg-11-1334558-g010.tif"/>
</fig>
</sec>
<sec id="s6-6">
<title>6.6 Conclusion</title>
<p>To address the issue of ineffective warning for thermal runaway failure of retired batteries, this paper proposes a data-driven thermal runaway failure warning method for retired batteries and validates the effectiveness of the proposed method using real operational data from a company&#x2019;s retired batteries. First, the paper establishes a basic model for thermal runaway failure warning of retired batteries based on reconstruction error calculation, which defines the degree of difference between batteries using their reconstruction errors and forms a discriminant model. By comparing the basic model with K-means clustering method, the study demonstrates that the reconstructed basic model is effective in identifying thermal runaway failure batteries. Second, the paper proposes a thermal runaway failure warning method for retired batteries based on Bi-LSTM and attention mechanism, which effectively extracts dynamic features of voltage, temperature, SOC, etc., during the thermal runaway failure process, and uses attention mechanism to improve the basic model by learning differentiated weights of various parameters at different time intervals, thereby reducing false negatives and false positives of the ensemble model for thermal runaway failure batteries. Furthermore, the paper proposes an ensemble learning-based thermal runaway failure warning method for retired batteries, which quantifies the probability of thermal runaway failure and reduces the variance of the ensemble model while ensuring its accuracy, compared with the basic model. Finally, the study proposes an ensemble optimization-based thermal runaway failure warning method for retired batteries, which optimizes the original model given a fixed ensemble model size and achieves higher accuracy than random ensemble models. This paper proposes a precise warning method for thermal runaway failure of retired batteries, which helps ensure the safe and reliable operation of energy storage battery systems at the safety level. The proposed method is applicable to thermal runaway warning of lithium batteries, including retired batteries. From the perspective of data requirements, the method can utilize time-series data from batteries under various operating conditions such as charging, discharging, and storage in any combination. This makes it easier to generalize and apply compared to mechanism research methods.</p>
<p>This article studies the precise warning method for the thermal runaway problem of energy storage batteries, which has certain practical significance. From the perspective of data requirements, the time-series data of energy storage batteries required by this method can be arbitrarily combined with various working conditions (charging, discharging, static, etc.), making it more easy to expand compared with mechanistic research methods. In addition, for the accurate description of the time and degree of thermal runaway in thermal runaway warning problems, this article will continue to explore in subsequent studies.</p>
</sec>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>FC: Data curation, Project administration, Resources, Supervision, Writing&#x2013;review and editing. XC: Data curation, Formal Analysis, Funding acquisition, Investigation, Writing&#x2013;review and editing. JJ: Data curation, Validation, Writing&#x2013;review and editing. YQ: Data curation, Validation, Writing&#x2013;review and editing. YC: Investigation, Methodology, Software, Validation, Writing&#x2013;original draft, Writing&#x2013;review and editing, Conceptualization, Supervision.</p>
</sec>
<sec sec-type="funding-information" id="s9">
<title>Funding</title>
<p>The author(s) declare financial support was received for the research, authorship, and/or publication of this article. This work was supported in part by the Postdoctoral Merit Funding of Zhejiang Province of China (ZJ2022052).</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>Authors FC, XC, JJ, and YQ were employed by PowerChina Huadong Engineering Co. Ltd.</p>
<p>The remaining authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bahdanau</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Cho</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Bengio</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Neural machine translation by jointly learning to align and translate</article-title>. <source>Comput. Sci</source>.</citation>
</ref>
<ref id="B2">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Barnett</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Technologies for detection and intervention of internal short circuits in Li-ion batteries</article-title>,&#x201d; in <conf-name>Proceedings of the 5th Annual Battery Safety</conf-name>, <conf-loc>Washington D.C., USA</conf-loc>, <conf-date>November 2014</conf-date>.</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chalise</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Shah</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Halama</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Komsiyska</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Jain</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>An experimentally validated method for temperature prediction during cyclic operation of a Li-ion cell</article-title>. <source>Int. J. Heat. Mass Transf.</source> <volume>112</volume>, <fpage>89</fpage>&#x2013;<lpage>96</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijheatmasstransfer.2017.04.115</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Orendorff</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Roth</surname>
<given-names>E. P.</given-names>
</name>
<etal/>
</person-group> (<year>2011</year>). <article-title>Multi-scale study of thermal stability of lithiated graphite</article-title>. <source>Energy Environ. Sci.</source> <volume>4</volume>, <fpage>4023</fpage>. <pub-id pub-id-type="doi">10.1039/c1ee01786a</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Cong</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Xiang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Rao</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Tao</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>X-A-BiLSTM: a deep learning approach for depression detection in imbalanced data</article-title>,&#x201d; in <conf-name>In Proceedings of the 2018 IEEE International Conference on Bioinformatics and Biomedicine</conf-name>, <conf-loc>Madrid, Spain</conf-loc>, <conf-date>December 2018</conf-date>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ding</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Koh</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Bai</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A meta-learning based multimodal neural network for multistep ahead battery thermal runaway forecasting</article-title>. <source>IEEE Trans. Ind. Inf.</source> <volume>17</volume>, <fpage>4503</fpage>&#x2013;<lpage>4511</lpage>. <pub-id pub-id-type="doi">10.1109/tii.2020.3015555</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Doughty</surname>
<given-names>D. H.</given-names>
</name>
</person-group> (<year>2012</year>). <source>Vehicle battery safety roadmap guidance</source>. <publisher-loc>Golden, CO (United States)</publisher-loc>: <publisher-name>National Renewable Energy Lab</publisher-name>. <comment>No. NREL/SR-5400-54404</comment>.</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Mu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>A prediction model based on artificial neural network for surface temperature simulation of nickel&#x2013;metal hydride battery during charging</article-title>. <source>J. Power Sources</source> <volume>208</volume>, <fpage>378</fpage>&#x2013;<lpage>382</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2012.02.059</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Feng</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Power equipment defect text mining based on bilstm attention neural network</article-title>. <source>Proc. CSEE</source> <volume>40</volume>, <fpage>1</fpage>&#x2013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2014.01.005</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Feng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
<etal/>
</person-group> (<year>2014</year>). <article-title>Thermal runaway features of large format prismatic lithiumion battery using extended volume accelerating rate calorimetry</article-title>. <source>J. Power Sources</source> <volume>255</volume>, <fpage>294</fpage>&#x2013;<lpage>301</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2014.01.005</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Feng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Thermal runaway mechanism of lithiumion battery for electric vehicles: a review</article-title>. <source>Energy Storage Mater</source> <volume>10</volume>, <fpage>246</fpage>&#x2013;<lpage>267</lpage>. <pub-id pub-id-type="doi">10.1016/j.ensm.2017.05.013</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Friedman</surname>
<given-names>J. H. T.</given-names>
</name>
<name>
<surname>Tibshirani</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Friedman</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hastie</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Tibshirani</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kuo</surname>
<given-names>P.-H.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <source>A solution manual and notes for the text: the elements of statistical learning</source>.</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Graves</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Supervised sequence labelling with recurrent neural networks</article-title>. <source>Stud. Comput. Intell.</source> <volume>385</volume>. <pub-id pub-id-type="doi">10.1007/978-3-642-24797-2</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hochreiter</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Schmidhuber</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>1997</year>). <article-title>Long short-term memory</article-title>. <source>Neural comput</source>. <volume>9</volume>, <fpage>1735</fpage>&#x2013;<lpage>1780</lpage>. <pub-id pub-id-type="doi">10.1162/neco.1997.9.8.1735</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Hundman</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Constantinou</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Laporte</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Detecting spacecraft anomalies using lstms and nonparametric dynamic thresholding</article-title>,&#x201d; in <conf-name>Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery and data mining</conf-name>, <conf-loc>New York, NY</conf-loc>, <conf-date>July 2018</conf-date>, <fpage>387</fpage>&#x2013;<lpage>395</lpage>.</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hussein</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chehade</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Robust artificial neural network-based models for accurate surface temperature estimation of batteries</article-title>. <source>IEEE Trans. Ind. Appl.</source> <volume>56</volume>, <fpage>5269</fpage>&#x2013;<lpage>5278</lpage>. <pub-id pub-id-type="doi">10.1109/tia.2020.3001256</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kingma</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Ba</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Adam: a method for stochastic optimization</article-title>. <source>Comput. Sci</source>. <pub-id pub-id-type="doi">10.48550/arXiv.1412.6980</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kuo</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>A high precision artificial neural networks model for short-term energy load forecasting</article-title>. <source>Energies</source> <volume>11</volume>, <fpage>213</fpage>&#x2013;<lpage>226</lpage>. <pub-id pub-id-type="doi">10.3390/en11010213</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>H. Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W. T.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>X. B.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>L. S.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>H. C.</given-names>
</name>
<etal/>
</person-group> (<year>2023b</year>). <article-title>State of health and remaining useful life prediction for lithium-ion batteries based on differential thermal voltammetry and a long and short memory neural network</article-title>. <source>Rare Met.</source> <volume>42</volume> (<issue>3</issue>), <fpage>885</fpage>&#x2013;<lpage>901</lpage>. <pub-id pub-id-type="doi">10.1007/s12598-022-02156-1</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>H. Q.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>L. H.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>H. C.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>S. Y.</given-names>
</name>
<etal/>
</person-group> (<year>2023a</year>). <article-title>Toward a function realization of multi-scale modeling for lithium-ion battery based on CHAIN framework</article-title>. <source>Rare Met.</source> <volume>42</volume> (<issue>2</issue>), <fpage>368</fpage>&#x2013;<lpage>386</lpage>. <pub-id pub-id-type="doi">10.1007/s12598-022-02138-3</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ping</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Thermal behaviour analysis of lithium-ion battery at elevated temperature using deconvolution method</article-title>. <source>Appl. Energy</source> <volume>129</volume>, <fpage>261</fpage>&#x2013;<lpage>273</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2014.04.092</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ren</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Xiang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Model-based thermal runaway prediction of lithium-ion batteries from kinetics analysis of cell components</article-title>. <source>Appl. Energy</source> <volume>228</volume>, <fpage>633</fpage>&#x2013;<lpage>644</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2018.06.126</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Sakurada</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Yairi</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Anomaly detection using autoencoders with nonlinear dimensionality reduction</article-title>,&#x201d; in <conf-name>Proceedings of the MLSDA 2014 2nd workshop on machine learning for sensory data analysis</conf-name>, <conf-loc>New York, NY</conf-loc>, <conf-date>December 2014</conf-date>, <fpage>4</fpage>&#x2013;<lpage>11</lpage>.</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shah</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Chalise</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Jain</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Experimental and theoretical analysis of a method to predict thermal runaway in Li-ion cells</article-title>. <source>J. Power Sources</source> <volume>330</volume>, <fpage>167</fpage>&#x2013;<lpage>174</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2016.08.133</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shi</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Load forecasting method based on multi model fusion stacking integrated learning</article-title>. <source>Proc. CSEE</source> <volume>39</volume>, <fpage>4032</fpage>&#x2013;<lpage>4042</lpage>.</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Spotnitz</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Franklin</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>Abuse behavior of high-power, lithium-ion cells</article-title>. <source>J. Power Sources</source> <volume>113</volume>, <fpage>81</fpage>&#x2013;<lpage>100</lpage>. <pub-id pub-id-type="doi">10.1016/s0378-7753(02)00488-3</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Ping</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Chu</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Thermal runaway caused fire and explosion of lithiumion battery</article-title>. <source>Cheminform</source> <volume>208</volume>, <fpage>210</fpage>&#x2013;<lpage>224</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2012.02.038</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wen</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>A review on lithium-ion batteries safety issues: existing problems and possible solutions</article-title>. <source>Mater. Express</source> <volume>2</volume>, <fpage>197</fpage>&#x2013;<lpage>212</lpage>. <pub-id pub-id-type="doi">10.1166/mex.2012.1075</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yi</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Fault diagnosis method of lithiumion battery based on vibration signal</article-title>. <source>Power Syst. Technol.</source> <volume>22</volume>, <fpage>71</fpage>&#x2013;<lpage>75</lpage>.</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zheng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Lithiumion battery pack power fade fault identification based on Shannon entropy in electric vehicles</article-title>. <source>J. Power Sources</source> <volume>223</volume>, <fpage>136</fpage>&#x2013;<lpage>146</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2012.09.015</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>