<?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">790295</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2021.790295</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 Fusion-Based Method of State-of-Charge Online Estimation for Lithium-Ion Batteries Under Low Capacity Conditions</article-title>
<alt-title alt-title-type="left-running-head">Zhou et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">SOC Estimation for Lithium-Ion Batteries</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zhou</surname>
<given-names>Nan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1527612/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Liang</surname>
<given-names>Hong</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Cui</surname>
<given-names>Jing</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Chen</surname>
<given-names>Zeyu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1505307/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Fang</surname>
<given-names>Zhiyuan</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1">
<label>
<sup>1</sup>
</label>School of Mechanical Engineering and Automation, Northeastern University, <addr-line>Shenyang</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<label>
<sup>2</sup>
</label>Key Laboratory of Vibration and Control of Aero-Propulsion System, Northeastern University, <addr-line>Shenyang</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<label>
<sup>3</sup>
</label>Vehicle Measurement, Control and Safety Key Laboratory of Sichuan Province, <addr-line>Chengdu</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/1349004/overview">Xiaopeng Tang</ext-link>, Hong Kong University of Science and Technology, Hong Kong SAR, China</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/1511229/overview">Quan Ouyang</ext-link>, Nanjing University of Aeronautics and Astronautics, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1511879/overview">Chang Liu</ext-link>, China Electronics Technology Group Corporation, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1132965/overview">Zhongbao Wei</ext-link>, Beijing Institute of Technology, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1511931/overview">Jun Xu</ext-link>, Xi&#x2019;an Jiaotong University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Zeyu Chen, <email>chenzy@mail.neu.edu.cn</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Electrochemical Energy Conversion and Storage, a section of the journal Frontiers in Energy Research</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>07</day>
<month>12</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2021</year>
</pub-date>
<volume>9</volume>
<elocation-id>790295</elocation-id>
<history>
<date date-type="received">
<day>06</day>
<month>10</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>05</day>
<month>11</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2021 Zhou, Liang, Cui, Chen and Fang.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Zhou, Liang, Cui, Chen and Fang</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&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>The accurate estimation of the battery state of charge (SOC) is crucial for providing information on the performance and remaining range of electric vehicles. Based on the analysis of battery charge and discharge data under actual vehicle driving cycles, this paper presents an online estimation method of battery SOC based on the extended Kalman filter (EKF) and neural network (NN). A battery model is established to identify and calibrate battery parameters. SOC estimation is conducted in the low-SOC area by exploring the relationship between battery parameters and SOC through many experimental results. In the fusion online estimation method, the NN is carried out to propose the estimation as the global mainstream trend providing a high precision feasible region; the EKF algorithm is used to provide the initial assessment and the local fluctuation boundary revision. Verified results show that it can improve the SOC estimation in low-battery capacity accuracy. It has achieved good adaptability to the estimation accuracy of low battery capacity SOC in different cycle conditions.</p>
</abstract>
<kwd-group>
<kwd>electric vehicle</kwd>
<kwd>lithium-ion battery</kwd>
<kwd>state of charge estimation</kwd>
<kwd>extended kalman filter</kwd>
<kwd>neural network</kwd>
</kwd-group>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content>
</contract-sponsor>
<contract-sponsor id="cn002">Fundamental Research Funds for the Central Universities<named-content content-type="fundref-id">10.13039/501100012226</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Introduction</title>
<p>As the ecological environment gradually deteriorates, designing the cleaning and efficient vehicle has attracted significant attention. Among various cleaning vehicles, pure electric vehicles (PEVs) are popular best with their environmental friendliness. Compared to other forms of energy, Lithium-ion batteries as the power source have the merits of lightweight, long cycle life, high energy, and low self-discharge rate. The State of Charge (SOC) is an essential state of battery parameter. It is defined as the ratio of remaining power to total power. The accurate estimation of the battery status not only helps to provide information about the current and remaining performance of the battery but also provides a guarantee for the reliable and safe operation of the PEV (<xref ref-type="bibr" rid="B16">Ranjbar et&#x20;al., 2011</xref>; <xref ref-type="bibr" rid="B21">Xiong et&#x20;al., 2017</xref>; <xref ref-type="bibr" rid="B23">Xu et&#x20;al., 2021</xref>). Over-discharging and overcharging a battery can seriously affect its condition, as doing so accelerates battery degradation. Achieving a good accuracy of SOC, furthermore, is essential for the battery management system (BMS) controlling and updating data, detecting faults, equalizing battery voltage to avoid any overcharging/over-discharging. The SOC value cannot be measured directly due to its complicated electrochemical reactions and performance degradation over time caused by various internal and external factors. The estimation of SOC can only be obtained indirectly based on the measurement of other parameters. Factors such as estimation methods, battery models, and optimization methods will all have a direct impact on the accuracy of SOC estimation (<xref ref-type="bibr" rid="B29">Zheng et&#x20;al., 2018</xref>). However, some critical parameters will be easily affected when age, environmental temperature changes, and discharges at high&#x20;rates.</p>
<sec id="s1-1">
<title>Literature Review</title>
<p>There are many studies on how to improve the accuracy of the SOC estimation. The ways of SOC estimation can be classified into three groups: character-based methods, model-based methods, and data-driven methods.</p>
<sec id="s1-1-1">
<title>Character-Based Methods</title>
<p>This method mainly relies on the battery parameters, like the open-circuit voltage (OCV), battery current, or some other characteristic curves. It requires a non-linear relationship between the electromotive force and the SOC when the battery is not loaded. For example, Barai A et&#x20;al.have proved that a battery OCV is directly related to the discharge capacity by testing and found that the battery capacity can change up to 5.0% (<xref ref-type="bibr" rid="B3">Barai et&#x20;al., 2015</xref>; <xref ref-type="bibr" rid="B1">Ali et&#x20;al., 2019</xref>). S Lee et&#x20;al.proposed a modified OCV-SOC relationship to solve the problems caused by the extended Kalman filter, which can be easily affected by varying relationships (<xref ref-type="bibr" rid="B10">Lee et&#x20;al., 2008</xref>). The open-circuit voltage can be obtained by OCV testing, but it is a time-consuming period. So this method cannot meet the requirements of real-time measurement. Besides, the non-linear relationship varies from battery to battery. What is more, there exist hysteresis characteristics in Li-ion batteries.</p>
<p>The Ampere-hour Integration method calculates the SOC by integrating the current over time. This method is also be called as coulomb counting method. The researchers take the charging and operating efficiencies into consideration to enhance estimation based on column counting (<xref ref-type="bibr" rid="B14">Ouyang et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B13">Meng et&#x20;al., 2018</xref>). Moreover, the intelligent estimation method was demonstrated effective by many experiments. Xu J et&#x20;al.combined the OCV method with the ampere-hour method to make up for the lack of ampere-hour integration method in real-time estimation (<xref ref-type="bibr" rid="B28">Zhang et&#x20;al., 2018</xref>). As the name showed, The Ampere-hour Integration method needs to know the accurate current at every moment. So an excellent current sensor is required. Especially in high temperature environmental and a large scale of current fluctuations, the current must be captured accurately. Otherwise, the error will be accumulated continuously. Although the difference is not apparent in the short term, the error will get out of control after a long period. So, on the one hand, we can quickly get the accurate SOC without modeling in theory with this method; on the other hand, only having a precise current sensor and testing in a short time can we use this method.</p>
</sec>
<sec id="s1-1-2">
<title>The Model-Based Method</title>
<p>The Kalman filtering algorithm is a standard adaptive filtering algorithm that is used in model-based methods. The typical estimation process commonly found in this type of algorithm includes prediction-measurement-correction. The core is a set of recursive equations, including the SOC estimated value and reflecting the estimated error. The estimated error is given in the covariance matrix (<xref ref-type="bibr" rid="B30">Zhou and Li, 2015</xref>; <xref ref-type="bibr" rid="B15">Qiu et&#x20;al., 2020</xref>). However, this method is only suitable for linear systems, but the battery is a nonlinear system. Thus, the Extended Kalman Filter Method, which can be applied in the nonlinear system, occurs. It performs Taylor expansion on the state filter value, omitting the second and above high terms. Only with the higher battery model accuracy and the computing power of the battery management system, it could be applied to the situation where the current fluctuates wildly, and the SOC estimation error could also be improved. Besides, we can obtain some battery model parameters by taking aging and lifetime into consideration with the help of some appropriate tools such as MATLAB Simulink. J Lee et&#x20;al. introduce a reduced-order EKF so that the calculation time can be decreased a lot (<xref ref-type="bibr" rid="B26">Yang et&#x20;al., 2021</xref>). With the Dual Extended Kalman Filter (DEKF) algorithm, Hu et&#x20;al. estimated the SOC and capacity by linking the battery OCV with SOC and capacity (<xref ref-type="bibr" rid="B27">Zhang and Xia, 2011</xref>; <xref ref-type="bibr" rid="B2">Bai et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B17">Shrivastava et&#x20;al., 2019</xref>). However, with the modified EKF, the previous studies only improved the limited accuracy of the SOC estimation in the normal range; it is far from fulfilling the demands for low-range SOC estimation (<xref ref-type="bibr" rid="B22">Xiong et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B19">Wang et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B4">Fu et&#x20;al., 2021</xref>). In general, filter-based methods can achieve high-precision estimation under certain conditions. For the non-linear scenario of battery SOC estimation, the extended Kalman filter method applies linearization approximation to the non-linear system to solve this problem. However, the stability of linearization error still needs to be improved (<xref ref-type="bibr" rid="B22">Xiong et&#x20;al., 2014</xref>). The unscented Kalman filter method is used to enhance the accuracy of the sampling process and the estimated state, but the convergence speed is still insufficient (<xref ref-type="bibr" rid="B27">Zhang and Xia, 2011</xref>).</p>
</sec>
<sec id="s1-1-3">
<title>Data-Driven Methods</title>
<p>The Neural Network method uses a mathematical model composed of interconnected artificial neurons stimulated by a biological neural network to predict the past data output of a nonlinear system. This method has parallel structure and learning ability and can solve the problem in a nonlinear system. According to its form, we can easily know that much reference data is needed to train the system. Proper selection of variables and training methods are also vital to the final estimation accuracy. Thus this method depends too much on the designer&#x2019;s experience. Based on Neural networks, Neuro-fuzzy prediction makes the neural network fuzzy and uses fuzzy logic to simulate people&#x2019;s fuzzy thinking. It is also essential to choose the correct number of variables--too few variables will lower the accuracy of the prediction; on the contrary, too many variables will make the prediction process more complicated. Compared with the Neural Network, this method is more convenient for dealing with qualitative issues, but it can not offer a pretty exact solution. O&#x2019;Gorman et&#x20;al.pioneering proposed the Neural Network method, which makes the models difficult to describe using mathematical models (<xref ref-type="bibr" rid="B11">Lipu et&#x20;al., 2018</xref>; <xref ref-type="bibr" rid="B24">Yang et&#x20;al., 2019</xref>; <xref ref-type="bibr" rid="B5">Hannan et&#x20;al., 2020</xref>). Gerard O et&#x20;al.establish a battery neural network performance model, using neuron weights to replace difficult-to-measure state variables (<xref ref-type="bibr" rid="B7">He et&#x20;al., 2014</xref>).The shortcoming of this kind of approach is time-consuming and the low efficiency in the estimation process (<xref ref-type="bibr" rid="B8">Kang et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B18">Tian et&#x20;al., 2017</xref>). Overall, the data-driven method is not sensitive to the performance of the model and external environmental factors. In the case of sufficient training data samples, its estimation accuracy can achieve relatively ideal results.</p>
<p>The above-mentioned various battery SOC estimation methods require more battery dynamic and steady-state information in electric vehicle applications (<xref ref-type="bibr" rid="B6">Hannan et&#x20;al., 2018</xref>). Furthermore, character-based methods, model-based methods, and data-driven methods provide a higher accuracy SOC estimation for LIBs in the normal range, but there is still room for improvement. A good balance between the current state of the battery, the estimation accuracy, and the calculation cost has always been a significant problem that researchers are trying to solve. However, few researches have been found on batteries at low-capacity range with the fact that the estimation of SOC cannot get accurate for its non-linearity (<xref ref-type="bibr" rid="B14">Ouyang et&#x20;al., 2014</xref>). Also, with the capacity-induced error, initial SOC error, current measurement error, and voltage measurement error, the error in the model estimation intensifies the difficulty of SOC estimation in the low-capacity range, leading to a more conservative SOC range. Accurate SOC estimation in the low-capacity range can improve the efficiency of battery capacity, which is of great significance for reducing mileage anxiety.</p>
</sec>
</sec>
<sec id="s1-2">
<title>Motivation and Original Contribution</title>
<p>When the battery SOC is close to 0%, the discharge would be stopped to protect the battery from over-discharging. The estimation is quite crucial for the low-SOC range (<xref ref-type="bibr" rid="B20">Xing et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B9">Lee et&#x20;al., 2017</xref>; <xref ref-type="bibr" rid="B25">Yang et&#x20;al., 2017</xref>). In EV applications, the battery management system is conservative if the battery SOC estimation is inaccurate at the low-SOC range, which makes it challenging to bring accurate mileage information to the driver and lead to usage anxiety and troublesome, to name a few, the EVs may stop working in advance, change the trip plan for extra charging behaviors, or break down en route, etc. Therefore, accurate estimation of the low capacity area not only helps to prolong the driving range but also gives assurances of safe and reliable vehicular operation.</p>
<p>There are indeed many estimation methods for SOC, and good estimation results have been achieved. However, from the conclusion, the overall low-capacity range is the interval with a more significant estimation error. Whether Lithium iron phosphate (LiFePO4) or Nickel Manganese Cobalt Oxide (NCM) cells have a significant drop in voltage at the end of discharge, and much attention has been paid to the fact that low capacity SOC estimates have an obvious error (<xref ref-type="bibr" rid="B5">Hannan et&#x20;al., 2020</xref>; <xref ref-type="bibr" rid="B26">Yang et&#x20;al., 2021</xref>). And the influencing factors are also various (such as the continuous reduction of the capacity, the accuracy of the battery model parameters with the voltage and current changes, etc.). Moreover, many studies are based on the laboratory conditions of the battery (such as constant current and constant voltage (CCCV) and dynamic stress test (DST)). The estimation effect is still to be tested under the actual driving cycle. Based on the above reasons, it is recommended to delineate a more conservative SOC use range and a few studies to further optimize the SOC estimation in the low-capacity range. To fill the above gap, this paper proposes an estimation method countering the low capacity situation. The presented process explores the relationship between battery parameters and SOC and,accordingly, establishes the appropriate model and estimation algorithm. The experiments on the low-capacity area of lithium batteries are carried out and analyzed.Then we use a fusion-based method based on neural network and EKF to conduct the SOC online estimation in the low-SOC&#x20;area.</p>
</sec>
<sec id="s1-3">
<title>Configuration of This Paper</title>
<p>The remainder of this paper is organized as follows: <italic>Modeling Study</italic> introduces the primary methods for this study, illustrates the setup of the experiment, the battery model used, and parameter identification, and SOC <italic>Estimation algorithm</italic> discusses the methodology for SOC estimations. <italic>Results and discussion</italic> presents the estimation results of the low capacity range SOC based on the proposed method with necessary discussions. Finally, the conclusion of our approach is given in <italic>Conclusion</italic>.</p>
</sec>
</sec>
<sec id="s2">
<title>Modeling Study</title>
<p>The experiment setup is shown in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref>. Based on the three driving cycles which are the Urban Dynamometer Driving Schedule (UDDS), Extra Urban Driving Cycle (EUDC), and New York City Cycle (NYCC), the Arbin LBT is used to collect the charging/discharging data of the battery to construct the training and verifying data set for the follow-up steps. The ambient temperature is set to 20&#xb0;C when the battery is placed in the temperature chamber. Different driving cycles represent the battery responsiveness to different working conditions, and further characterize the adaptability of SOC estimation to different environments. To avoid the difference in battery operation cycles caused by the selected driving cycle duration, the battery parameters are normalized to ensure a basis for comparison and provide a more reliable guarantee for future SOC estimations applications.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Schematic diagram of the experimental setup.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g001.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F2">Figure&#x20;2</xref> shows the whole battery voltage and current variation trend against the three driving cycles (UDDS, EUDC, and NYCC. Different from the traditional laboratory battery test cycles, for example, the UDDS driving cycle corresponds to variable road requirements, and the output of the battery is more close to the actual vehicle operation states of the battery voltage and current changes, without considering the temperature fluctuation. According to the battery voltage and current state, it is the purpose of this study to improve the accuracy of the NCM (Nickel Manganese Cobalt Oxide) battery SOC estimation when the battery voltage drops from the low-capacity range state to the cut-off voltage. <xref ref-type="fig" rid="F2">Figure&#x20;2A1,A2,B1,B2, and C1,C2</xref> are the variation curves of voltage and current in the three driving cycles, respectively. This article defines the low-capacity range as the SOC variation range between 0.2&#x2013;0. Based on this, further reconstructed voltage and current change curves of the selected area are shown in <xref ref-type="fig" rid="F2">Figures 2A3,B3, and C3</xref>, which are the data set of this research.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Three driving cycles&#x2019; voltage and current undercharging and discharge operations.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g002.tif"/>
</fig>
<p>Among them, the reference value of SOC is obtained using the coulomb counting method given later. In the training process of the neural network, the initial state unit is set as zero, and the weight is randomly selected. The amount of data in the research is about 22,000. To verify the effectiveness of the algorithm, 50&#x2013;80% of the data is used to train the network, and the remaining data is used to test the network. After weighing, representative data in the low-capacity interval are selected as training samples, and the rest data are used for verification (for example, some data in the data segment of 1000&#x20;&#x223c; 4000&#xa0;s, 5000-8000&#xa0;s,9000 &#x223c; 10000&#xa0;s in <xref ref-type="fig" rid="F2">Figure&#x20;2B3</xref> are used for training, and the rest are used for verification). In actual application scenarios, voltage, current signals, and SOC values recorded in real-time by selecting a suitable time window can meet the requirements of training samples. Therefore, combined with the actual data volume, this paper establishes 30% for testing.</p>
<p>The equivalent circuit model with one RC item (<xref ref-type="bibr" rid="B12">Lu et&#x20;al., 2018</xref>) is used in this study, as shown in <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>, where I<sub>L</sub> is the load current with a positive value when discharging and a negative value when charging, U<sub>oc</sub> is the open-circuit voltage (OCV), U<sub>L</sub> is the terminal voltage, U<sub>p</sub> is the polarisation voltage, R<sub>o</sub> is the equivalent ohmic resistance, R<sub>p</sub> is the equivalent polarisation resistance, and C<sub>p</sub> is the equivalent polarisation capacitance. The battery cell characteristics are shown in <xref ref-type="table" rid="T1">Table&#x20;1</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Schematic of the Thevenin&#x20;model.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g003.tif"/>
</fig>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>List of main parameters of the experiment.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Type of the battery cell</th>
<th align="center">18650-type cylindrical NCM lithium cells</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Nominal cell capacity (0.3C)</td>
<td align="center">2.0&#xa0;Ah</td>
</tr>
<tr>
<td align="left">Average battery cell voltage</td>
<td align="center">3.6&#xa0;V</td>
</tr>
<tr>
<td align="left">End of discharge voltage</td>
<td align="center">2.5&#xa0;V</td>
</tr>
<tr>
<td align="left">High voltage protection</td>
<td align="center">4.2&#xa0;V</td>
</tr>
<tr>
<td align="left">Operation temperature range</td>
<td align="center">&#x2212;20&#xb0;C&#x223c;55&#xb0;C</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To evite the estimation errors caused by the operating environment and aging arising in the traditional offline identification method, online model parameters identification has been put forward. The electrical behavior of the Thevenin model can be expressed as follow by <xref ref-type="disp-formula" rid="e1">Eq. 1</xref>.<disp-formula id="e1">
<mml:math id="m1">
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where s is the frequency operator.</p>
<p>By combining the adaptive techniques, the model can automatically adjust to changing systems. The influence of temperature is neglected and then the <xref ref-type="disp-formula" rid="e1">Eq. 1</xref> can be rewritten as<disp-formula id="e2">
<mml:math id="m2">
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where k &#x3d; 1,2,3&#x2026;, a<sub>1</sub>, a<sub>2,</sub> and a<sub>3</sub> are coefficients that are defined by<disp-formula id="e3">
<mml:math id="m3">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(3)</label>
</disp-formula>where T is the constant sample&#x20;time.</p>
<p>According to <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>, we can define three new vectors as follow:<disp-formula id="e4">
<mml:math id="m4">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>&#x3c6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>U</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(4)</label>
</disp-formula>then the <xref ref-type="disp-formula" rid="e2">Eq. 2</xref> can be expressed by<disp-formula id="e5">
<mml:math id="m5">
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>&#x3b8;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>The terminal voltage U<sub>L</sub>(k) and current I<sub>L</sub>(k) are sampled at a constant period, and according to <xref ref-type="disp-formula" rid="e5">Eq. 5</xref>, the vector &#x3b8; can be identified by the recursive least squares algorithm with an optimal forgetting factor, described as<disp-formula id="e6">
<mml:math id="m6">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(6)</label>
</disp-formula>where <inline-formula id="inf1">
<mml:math id="m7">
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the estimated value of the parameter vector &#x3b8;(k)&#x20;at a time; e(k) is the prediction error of the terminal voltage, K(k) is the gain of the RLS algorithm, <italic>p</italic>(k) is the covariance matrix, &#x3bb; is the forgetting factor which is a constant, generally &#x3bb;&#x2208;[0.95,1], and setting an optimal value for &#x3bb; is very important to get the good identified result of the parameter vector &#x3b8;.</p>
<p>According to the identified vector &#x3b8;, the model parameters of the battery, R<sub>o</sub>, R<sub>p,</sub> and C<sub>p</sub>, can be solved by the expressing of a<sub>1</sub>, a<sub>2,</sub> and a<sub>3</sub>, which is shown as<disp-formula id="e7">
<mml:math id="m8">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
</sec>
<sec id="s3">
<title>SOC Estimation Algorithm</title>
<p>The presented method is to obtain the precise estimation for the battery with low capacity. Concerning the extreme non-linear characteristics of the battery in the low SOC range, the EKF and NN are combined to improve the estimation accuracy. The algorithm contains two steps: in the first step, the EKF is conducted to achieve a preliminary estimation; then, the NN is used for the correction based on the EKF results. The overall framework of the presented method is shown in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref>. The voltage and current parameters of the lithium-ion battery are collected when the battery is in the low SOC capacity, rather than the data in the full SOC range. The RC model is used to predict the response characteristics of the battery. Then, the characteristic parameters of the battery model are provided to the EKF algorithm for estimation and correction of the battery SOC. The EKF based estimation algorithms in the low capacity SOC estimation are not satisfactory in most situations. When the SOC is lower than 0.3, the SOC error seems to be higher, which indicates that the non-linear behavior of the battery under low SOC becomes more complicated, making it more challenging to estimate the SOC. So, we use the EKF SOC estimation data set in the low SOC range as a training parameter to train the NN network to improve the SOC estimation accuracy, especially in the low capacity area of the battery. At the same time, the SOC result identified by the model, by the EKF, and by NN algorithms are appraised the effect of the estimation after comprehensive analysis and data fusion.<list list-type="simple">
<list-item>
<p>Step 1: Coulomb counting method</p>
</list-item>
</list>
</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Estimation method framework.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g004.tif"/>
</fig>
<p>Although it is generally believed that Coulomb counting is regarded as a more traditional SOC estimation method, it is still widely used in actual implications, especially in the initial stage of battery use. The initial SOC of the battery has been with high accuracy. After the battery is fully rested, excluding the influence of hysteresis and relaxation effects, and accurately obtaining battery capacity information, the estimation effect of its SOC is trustworthy. For this current-based method, the SOC can be calculated as the ratio between the remaining coulombs and the assumed battery capacity. The Coulomb counting method for SOC estimation can be approximated as follows:<disp-formula id="e8">
<mml:math id="m9">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mstyle displaystyle="true">
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x222b;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mi>t</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>Where <italic>&#x3b7;</italic>
<sub>
<italic>bat</italic>
</sub> is the Coulomb efficiency of the battery and can be further expressed as:<disp-formula id="e9">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>In the above equation, t is the unit of time (seconds), i (t) is the current through the battery at time t, soc (t<sub>0</sub>) is the SOC at the instant t &#x3d; 0, and soc (t) is the interval SOC at t, C<sub>bat</sub> is the battery capacity.<list list-type="simple">
<list-item>
<p>Step 2: initial estimation based on&#x20;EKF</p>
</list-item>
</list>
</p>
<p>Here EKF is used as an optimum state estimator for nonlinear systems and works by recursion. A nonlinear discrete system can be defined by<disp-formula id="e10">
<mml:math id="m11">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>Q</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>where x<sub>k</sub> is the estimated state of the nonlinear system at time k; u<sub>k-1</sub> is the external input variable at time k-1; y<sub>k</sub> is the output of the nonlinear system at time k; w<sub>k</sub> and v<sub>k</sub> are respectively the system process noise array and the measurement noise array, which are uncorrelated zero-mean white Gaussian noise with covariance matrixes Q<sub>k</sub> and&#x20;R<sub>k</sub>.</p>
<p>To apply the EKF algorithm to battery SOC estimation, we express the electrical behavior of the Thevenin model in the discrete form, which is shown as<disp-formula id="e11">
<mml:math id="m12">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>U</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>o</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>P</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2217;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>where &#x394;t equals sampling&#x20;time.</p>
<p>SOC can be updated by<disp-formula id="e12">
<mml:math id="m13">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mi>&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>where: &#x394;t equals sampling time; C<sub>a</sub> is the usable capacity of the battery.</p>
<p>Thus, the state space equation and the measurement equation can be described by<disp-formula id="e13">
<mml:math id="m14">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>w</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>where x<sub>k</sub> is the state variable, which is consist of U<sub>p</sub> and SOC; y<sub>k</sub> is the observable variable including U<sub>L</sub>; vector x<sub>k</sub>, y<sub>k,</sub> and matrix A<sub>k</sub>, B<sub>k</sub>, C<sub>k,</sub> and D<sub>k</sub> is expressed as<disp-formula id="e14">
<mml:math id="m15">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi mathvariant="italic">p, k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>o</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi mathvariant="italic">L, k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi mathvariant="italic">p, k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x394;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>C</mml:mi>
<mml:mi>a</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>U</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>C</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>D</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi mathvariant="italic">o, k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<p>The iterative formulas of the algorithm are shown as<disp-formula id="e15">
<mml:math id="m16">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>k&#x2212;1</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:msubsup>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>Q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m17">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:msub>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msubsup>
<mml:mi>P</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msubsup>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>T</mml:mi>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
</mml:msup>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(16)</label>
</disp-formula>
</p>
<p>The use of the EKF method needs to meet certain assumptions, the OCV characterization that represents the battery voltage as a function of SOC, and the functional relationship for the voltage drop due to impedance and hysteresis within the battery could be a nonlinear relationship. Battery model parameters and noise-related statistics need to be known.The process and measurement noise need to have a clear distribution law (such as normal distribution) with the mean and variance available.</p>
<p>However, there are more or less aspects in our previous&#x20;research that lead to violations of general model assumptions, such as the initial SOC error, the OCV-SOC&#x20;modeling error, parameter estimation error, statistical parameters of the process noise. The source of these inaccuracies is incorrect parameter values or model structure.</p>
<p>Furthermore, in most practical applications, the battery capacity will change a lot with the battery aging process, and it is not easy to re-calibrate the battery capacity in time. The initial SOC error accumulation is an essential factor that cannot be ignored.The noise matrixes of the system and measurement in the method of EKF are not the same for the whole SOC estimation process, and its assumptions about the EKF application conditions are difficult to meet in actual operation. These all have generated the need for a more flexible estimation algorithm to make a reasonable and accurate estimation of the battery state. So the next introduction of NN-based algorithms meets the above requirements.<list list-type="simple">
<list-item>
<p>Step 3: Neural network and fusion frameworks</p>
</list-item>
</list>
</p>
<p>The inputs of the neural network are battery current and voltage, while the output is the battery SOC. The nodes between two adjacent layers are interconnected with weights. On the premise of meeting the error allowance, feedforward neural networks are selected in this paper from the perspective of simplicity of network architecture, real-time performance of future vehicle applications and reduction of computing requirements, but it is not limited to this method. Other neural network algorithms are also applicable to the SOC estimation scenarios with sufficient training data samples. The structure process of the network used in this article is divided into four steps.<list list-type="simple">
<list-item>
<p>1) Initialization: set the weight and bias value of the network as random variables and ensure that the selected value is within the feasible range. At the same time, set an appropriate number of iterations.</p>
</list-item>
<list-item>
<p>2) Selection of the transfer function: activate the network according to the input and expected output of the network, and select the appropriate transfer function to calculate the output of the corresponding neuron in the hidden layer and the output&#x20;layer.</p>
</list-item>
</list>
</p>
<p>The hidden layers and output layers are processing layers with the activation function at each node. The hyperbolic tangent sigmoid function is often used in the hidden layer as an activation function. It is defined as:<disp-formula id="e17">
<mml:math id="m18">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>tanh</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>2</mml:mn>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>In the choice of activation function, a linear transfer function is selected in the output layer to deal with regression and fitting problems. The output of a processing node in the first hidden layer is written as:<disp-formula id="e18">
<mml:math id="m19">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>M</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>&#x2026;</mml:mo>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>n</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mi>m</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(18)</label>
</disp-formula>where I and U are the inputs of the network, <inline-formula id="inf2">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the weight of the initialized, where M denotes the number of neurons in the hidden layer and <inline-formula id="inf3">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the initialized&#x20;bias.</p>
<p>The output of a processing node j in the hidden or output layer is given by:<disp-formula id="e19">
<mml:math id="m22">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mo>&#x2211;</mml:mo>
<mml:mi>p</mml:mi>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(19)</label>
</disp-formula>where <inline-formula id="inf4">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the output from the <inline-formula id="inf5">
<mml:math id="m24">
<mml:mi>p</mml:mi>
</mml:math>
</inline-formula> th node at the previous layer, <inline-formula id="inf6">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the weight of the interconnection from the <inline-formula id="inf7">
<mml:math id="m26">
<mml:mi>p</mml:mi>
</mml:math>
</inline-formula> th node of the previous layer to <inline-formula id="inf8">
<mml:math id="m27">
<mml:mi>k</mml:mi>
</mml:math>
</inline-formula> th node of the present layer, and <inline-formula id="inf9">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the bias. The net weights <inline-formula id="inf10">
<mml:math id="m29">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and biases <inline-formula id="inf11">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b8;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> need to be determined based on training data.<list list-type="simple">
<list-item>
<p>3) Error calculation: Calculate the error in the output layer and the hidden layer, and the error will be passed back to the previous network layer. The output error is calculated&#x20;as,</p>
</list-item>
</list>
<disp-formula id="e20">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
<inline-formula id="inf12">
<mml:math id="m32">
<mml:mrow>
<mml:msub>
<mml:mi>T</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the desired output value. The hidden error is computed as,<disp-formula id="e21">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d1;</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>F</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:msub>
<mml:mi>&#x3d1;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c9;</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>
<list list-type="simple">
<list-item>
<p>4) Update: According to the error situation, adjust the corresponding weight and biases value within the threshold&#x20;range.</p>
</list-item>
</list>
</p>
<p>In this study, the input of the neural network is the current and voltage measurements, and the output is the SOC. The sample number of the input parameter K refers to data before the present moment as input, which is [I(t), I(t-1), I(t-2), &#x2026;, I(t-k), U(t), U (t-1), U(t-2), &#x2026;, U(t-k)], the output is the present SOC(t), k is the parameter that needs to be determined before training.</p>
<p>In the choice of NN network, this research follows some empirical rules to determine the appropriate neural network structure. First of all, according to the literature (<xref ref-type="bibr" rid="B7">He et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B11">Lipu et&#x20;al., 2018</xref>; <xref ref-type="bibr" rid="B5">Hannan et&#x20;al., 2020</xref>), the two-layer neural network can meet the demand. In the subsequent analysis of the results, the comparison of the impact of the two-layer and multi-layer neural networks on the accuracy is selected. Second, the number of suitable neurons (M in <xref ref-type="disp-formula" rid="e18">Eq. 18</xref>) will cause the overfitting and underfitting of the data. Therefore, the parameter selection process is determined through the appropriate NN network selection, that is, the values of k and M. The principle of selecting network parameters is to acquire the smallest values of k and M under an acceptable degree of error. If the error is unacceptable, increase the values of k and M accordingly, the final selected result is K &#x3d; 25, M &#x3d; 15. The flowchart is in <xref ref-type="fig" rid="F5">Figure&#x20;5</xref>, and the specific selection process is as follows:<list list-type="simple">
<list-item>
<p>1) Initialize the values of k and M: k &#x3d; 1, M &#x3d; 1, which respectively determine the dimension of the input vector and the value of the hidden layer neuron.</p>
</list-item>
<list-item>
<p>2) Train the network based on the current k and M values, and output SOC(t);</p>
</list-item>
<list-item>
<p>3) Calculate the RMSE of the output SOC(t) and the reference SOC value;</p>
</list-item>
<list-item>
<p>4) Determine whether the RMSE is less than 1%. If RMSE&#x3c;1%, the value of k and M ends; otherwise, such as k &#x2264; 2M, <italic>k</italic>&#x20;&#x3d; k&#x2b;1, M &#x3d; M; otherwise, k &#x3d; k, <italic>M</italic>&#x20;&#x3d; M&#x2b;1.</p>
</list-item>
</list>
</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>The selection process of the main parameters of the NN network.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g005.tif"/>
</fig>
<p>According to the test results, the nonlinearity of battery model parameters is quite evident in the low SOC range, so a&#x20;neural network is used to obtain the implicit association between battery parameters and SOC. Considering the local&#x20;outlier fluctuations that may occur in the NN method and the relative stability of EKF, according to the actual situation, the results of the two estimations are fused to obtain better estimation accuracy. The NN is trained based on the test data of the lithium-ion battery at a low SOC range.&#x20;The inputs of the neural network are the battery current and voltage, while the output is battery SOC. In the&#x20;local low capacity area, the abnormal value based on the&#x20;NN-based SOC estimation is corrected by EKF which is&#x20;as the boundary reference value, and the NN that realizes&#x20;the global trend is guaranteed to be supplemented by EKF calibration to achieve the integration of the advantages&#x20;of the two estimations and improve algorithm&#x2019;s effectiveness. The scheme of the fusion algorithm is illustrated&#x20;in <xref ref-type="fig" rid="F6">Figure&#x20;6</xref>. In this step, the SOC estimation from EKF is firstly used to train the NN and also as the fluctuant boundary to improve the local algorithm&#x2019;s effectiveness.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>The structure of the fusion estimation.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g006.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F7">Figure&#x20;7</xref>, the flowchart briefly describes the fusion process&#x20;of the two estimation methods, and <inline-formula id="inf13">
<mml:math id="m34">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>E</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf14">
<mml:math id="m35">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mi>K</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf15">
<mml:math id="m36">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>O</mml:mi>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the reference SOC from the Coulomb counting, SOC estimation from EKF, and SOC estimation from&#x20;NN.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>The flowchart of integration NN and EKF.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g007.tif"/>
</fig>
<p>When the battery is in the low-capacity range, the voltage and current changes bring many challenges to the estimation of SOC. The basic idea of battery SOC estimation is to assume that the effect of NN estimation is a more accurate output choice. Still, EKF and NN are estimated in parallel during constant competition. When NN outputs appear local abnormal value, the fusion algorithm optimizes the final output estimation result according to the current EKF and the NN estimation result to achieve the overall estimation accuracy. <xref ref-type="fig" rid="F8">Figure&#x20;8</xref>, shows the fusion process in the form of a schematic diagram. Although the Coulomb counting method has an inevitable accumulated error, its value in a single period could still be regarded as a reference. In the previous training, the error of the NN estimation result regarding the reference value is relatively low, so the abnormal data here refers to the absolute value of the NN estimated relative to the reference value is greater than the EKF estimated relative to the reference value, as shown in <xref ref-type="fig" rid="F6">Figures 6</xref>, <xref ref-type="fig" rid="F7">7</xref>. Here, the deviation of the positive and negative two-way error from the reference value is considered.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>The schematic diagram of the fusion estimation.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g008.tif"/>
</fig>
</sec>
<sec sec-type="results|discussion" id="s4">
<title>Results and Discussion</title>
<p>According to the aforementioned battery model-based estimation method, a fully charged battery is recorded as SOC 1. The open-circuit voltage data is recorded after the battery is fully static. Discharge the battery with a current of 0.2C and take breaks to re-record the open-circuit voltage again when the SOC is 0.9. Repeat the above process until the SOC is 0.1 to obtain the functional relationship between SOC and OCV, as shown in <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>. The results of other parameters identified in the battery model are shown in <xref ref-type="table" rid="T2">Table&#x20;2</xref>.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>The relationship between SOC and OCV.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g009.tif"/>
</fig>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Other relevant parameters corresponding to SOC in the&#x20;model.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">SOC</th>
<th align="center">Ro/&#x3a9;</th>
<th align="center">
<inline-formula id="inf16">
<mml:math id="m37">
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mtext>Rp</mml:mtext>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi>&#x3a9;</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</th>
<th align="center">Cp/kF</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">1</td>
<td align="char" char=".">0.127</td>
<td align="char" char=".">0.045</td>
<td align="char" char=".">350.8</td>
</tr>
<tr>
<td align="left">0.9</td>
<td align="char" char=".">0.137</td>
<td align="char" char=".">0.035</td>
<td align="char" char=".">310.5</td>
</tr>
<tr>
<td align="left">0.8</td>
<td align="char" char=".">0.111</td>
<td align="char" char=".">0.054</td>
<td align="char" char=".">562.8</td>
</tr>
<tr>
<td align="left">0.7</td>
<td align="char" char=".">0.12</td>
<td align="char" char=".">0.049</td>
<td align="char" char=".">462.5</td>
</tr>
<tr>
<td align="left">0.6</td>
<td align="char" char=".">0.119</td>
<td align="char" char=".">0.046</td>
<td align="char" char=".">493.3</td>
</tr>
<tr>
<td align="left">0.5</td>
<td align="char" char=".">0.116</td>
<td align="char" char=".">0.053</td>
<td align="char" char=".">417.4</td>
</tr>
<tr>
<td align="left">0.4</td>
<td align="char" char=".">0.107</td>
<td align="char" char=".">0.039</td>
<td align="char" char=".">366.6</td>
</tr>
<tr>
<td align="left">0.3</td>
<td align="char" char=".">0.108</td>
<td align="char" char=".">0.041</td>
<td align="char" char=".">303.8</td>
</tr>
<tr>
<td align="left">0.2</td>
<td align="char" char=".">0.111</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">254.5</td>
</tr>
<tr>
<td align="left">0.1</td>
<td align="char" char=".">0.113</td>
<td align="char" char=".">0.065</td>
<td align="char" char=".">196.1</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As mentioned earlier, this study selected 70% of the data volume as the training basis of the neural network, the temperature remains constant, and the actual changing voltage and current in the low-capacity range corresponding to the driving cycle have been used as input. Considering the voltage and current unit and variation range differences, the input parameters are all normalized, and the output is the corresponding SOC change. The neural network training method is Levenberg-Marquardt, and the maximum number of iterations is set to 1000. <xref ref-type="fig" rid="F10">Figure&#x20;10</xref> shows the training result, which contains two hidden layers, and each hidden layer contains 15 neurons. The training program stops at 767 epochs. At this time, the MSE value drops to 8.213&#xd7;10<sup>&#x2212;5</sup>, indicating that the error between the estimated value and the true value is minimal, which proves the effectiveness and reliability of the training.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>The training result of the NN.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g010.tif"/>
</fig>
<p>Generally speaking, the root mean square error (RMSE) and mean absolute error (MAE) are selected to evaluate the accuracy of the battery SOC estimation method, and the calculation expression is as follows:<disp-formula id="e22">
<mml:math id="m38">
<mml:mrow>
<mml:mi>R</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>S</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>n</mml:mi>
</mml:mfrac>
<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:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>
<disp-formula id="e23">
<mml:math id="m39">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>n</mml:mi>
</mml:mfrac>
<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:mrow>
<mml:mrow>
<mml:mo>&#x7c;</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x7c;</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mstyle>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>Where n is the number of SOC data, <inline-formula id="inf17">
<mml:math id="m40">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the reference SOC value at time k (from the Coulomb counting), and <inline-formula id="inf18">
<mml:math id="m41">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the SOC estimated by the estimation method at time k. <xref ref-type="table" rid="T3">Table&#x20;3</xref> compares the computational cost, which is on an Intel<sup>&#xae;</sup> Core&#x2122; i7-4790 CPU <email>T6600@3.6GHz</email>, 3.6GHz, with 12&#xa0;GB RAM and 64-bit OS, of using the RMSE referring to different SOC estimation algorithms accuracy for the simulated use time of different driving cycle conditions. The results show that the increase of calculation cost for the fusion algorithm of the three selected working conditions is acceptable. Still improvement of the estimation accuracy is indeed significant, which can be seen in the subsequent analysis. For example, the computational cost is about 32.37&#xa0;s for UDDS. Compared with the same type of driving cycle and estimation accuracy in the literature (<xref ref-type="bibr" rid="B11">Lipu et&#x20;al., 2018</xref>), the simulation time has certain advantages.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Computational cost results for different estimation algorithms and driving cycles.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">Method</th>
<th colspan="3" align="center">Simulation time (seconds)</th>
</tr>
<tr>
<th align="center">EUDC</th>
<th align="center">NYCC</th>
<th align="center">UDDS</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">NN</td>
<td align="char" char=".">9.37</td>
<td align="char" char=".">55.83</td>
<td align="char" char=".">32.37</td>
</tr>
<tr>
<td align="left">Fusion</td>
<td align="char" char=".">9.76</td>
<td align="char" char=".">56.37</td>
<td align="char" char=".">33.03</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To evaluate the effect of the presented method, the experiments are carried out. <xref ref-type="fig" rid="F11">Figure&#x20;11A</xref> illustrates the voltage and current variations under the UDDS driving cycle and the estimation analysis. In this study, we are mainly concerned with the situation when the battery pack is short of energy. Therefore, we only discuss the results in the low battery capacity area. Through literature review, some EKF methods could obtain relatively good SOC estimation accuracy for laboratory conditions (such as constant current and Constant Voltage (CCCV)), and the MAE is about 3%. When the test condition changes to the Dynamic Stress Test (DST), the MAE is about 6% (<xref ref-type="bibr" rid="B16">Ranjbar et&#x20;al., 2011</xref>). The actual working conditions used in our case are equivalent to or more complex than DST, and the MAE estimated by EKF is about 3%, depending on the different test cycles. Therefore, the estimated level of EKF can be considered as reaching the mainstream level, and having reference value.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>The evaluation results for low battery capacity area under UDDS driving cycle. <bold>(A)</bold> The battery voltage and current <bold>(B)</bold> The SOC estimations for UDDS. <bold>(C)</bold> The error analysis.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g011.tif"/>
</fig>
<p>The SOC obtained from the coulomb counting method is used as the benchmark for estimation analysis, as shown in <xref ref-type="fig" rid="F11">Figure&#x20;11B</xref>. From the results, we can notice that the presented NN-based SOC estimation can achieve more approaching values compared with only using the EKF. To better observe the estimation precision, the error distributions are illustrated in <xref ref-type="fig" rid="F11">Figure&#x20;11C</xref>, where indicates that the NN-revised SOC estimation is lower in the entire range. The RMSE and MAE of the NN estimation in this range are 0.0162 and 0.008, respectively, reduced by 45.7 and 77.7% compared with EKF. That is of great significance for fully exploring the potential of battery driving range, reasonable specification of battery charging strategy, ultimately improving the accuracy of battery SOC estimation, and expanding the acceptance of electric vehicles. It can be noticed that the SOC estimation values of the NN-based algorithm is always lower than EKF for UDDS driving cycle and fluctuates around the baseline (of course, this does not exist in the real-time situation), and there is no NN-based SOC estimation that is higher than the EKF estimation situation. Compared with the results of the literature (<xref ref-type="bibr" rid="B7">He et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B8">Kang et&#x20;al., 2014</xref>; <xref ref-type="bibr" rid="B23">Xu et&#x20;al., 2021</xref>), when the NN method is used for the same or similar actual driving cycle conditions, the SOC estimation results are improved by about 3%. At the same time, for the UDDS driving cycle, the SOC estimation based on the BP neural network algorithm is carried out for low-capacity area. The accuracy of the estimation is basically similar to the feedforward neural networks as shown in <xref ref-type="fig" rid="F11">Figures 11B,C</xref>. Several local areas SOC estimations are better than the method selected in this article. However, the simulation time is 34.75s, which is slightly increased compared to the corresponding situation in <xref ref-type="table" rid="T3">Table&#x20;3</xref>. After comprehensive consideration, this paper selects feedforward neural networks.</p>
<p>In <xref ref-type="fig" rid="F12">Figure&#x20;12A</xref>, for the EUDC driving cycle, the current discharge range is deep, and the voltage drop is pronounced compared to UDDS. We found the same problem in the low-capacity SOC estimation; that is, the EKF estimation method generally has a higher error. Also, the estimated results of the trained NN in the low SOC range for the EUDC driving cycle are shown in <xref ref-type="fig" rid="F12">Figure&#x20;12B</xref>.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>The evaluation results for low battery capacity area under EUDC driving cycle. <bold>(A)</bold> The battery voltage and current <bold>(B)</bold> The SOC estimations for EUDC without fusion. <bold>(C)</bold> The SOC estimations for EUDC with fusion <bold>(D)</bold> The error analysis.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g012.tif"/>
</fig>
<p>The solid red SOC line is the comparison benchmark for the estimated effect calculated by coulomb counting. In <xref ref-type="fig" rid="F12">Figure&#x20;12B</xref>, there are three SOC observation windows as A, B, and C. A better reflects the accuracy of the NN algorithm. In the two observation windows B and C, the EKF algorithm has obvious advantages. Therefore, the fusion estimation based on the above two methods is based on the NN algorithm with better global accuracy, but there will inevitably be local data abnormalities. Therefore, the boundary effect of EKF is used to improve the local SOC estimation accuracy. As shown in <xref ref-type="fig" rid="F12">Figure&#x20;12C</xref>, after the improvement, the SOC estimation curve in the two observation windows of B and C refers to the tendency of the EKF estimation value with a more minor error, which overcomes the abnormal value fluctuation of the NN algorithm and achieves the fusion of the two estimation methods. For the fusion-based estimation, the absolute error is mostly within 2%, but the maximum error of the EKF method at some points is greater than 4%, in <xref ref-type="fig" rid="F12">Figure&#x20;12D</xref>. Considering the discharge characteristics of NMC batteries, which do not have a long discharge plateau, the SOC estimation error mainly appears in the low-capacity area at the end of discharge. In this attempt, by using more hidden layers training the neural network, although a lower error can be obtained, it is also accompanied by the potential risk of overfitting. For example, the selected multi-layer neural network already has a lower EMS error. However, the test results are not significantly improved compared to the two-layer results and increase the computational demand. See <xref ref-type="table" rid="T4">Table&#x20;4</xref> below for a detailed comparison.</p>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Error comparisons for EUDC.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left"/>
<th align="center">MAE</th>
<th align="center">RMSE</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Estimation by EKF</td>
<td align="char" char=".">0.0482</td>
<td align="char" char=".">0.0514</td>
</tr>
<tr>
<td align="left">Estimation by Fusion-two-layer</td>
<td align="char" char=".">0.0087</td>
<td align="char" char=".">0.0215</td>
</tr>
<tr>
<td align="left">Estimation by Fusion-muti-layer</td>
<td align="char" char=".">0.0079</td>
<td align="char" char=".">0.0209</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Due to the frequent charging and discharging behavior in the driving cycle, the low-capacity area of NYCC runs for a long time, making the battery voltage and current changes show prominent periodic characteristics, shown in <xref ref-type="fig" rid="F13">Figure&#x20;13A</xref> In the SOC estimation for the NYCC driving cycle, it can be seen from <xref ref-type="fig" rid="F13">Figure&#x20;13B</xref> that the comparison between the EKF-based and NN-based methods in the low SOC range. By analyzing the SOC estimation error by the two estimation methods, it can be seen that comparing with EKF, the estimated value by the NN-based method can be maintained around the baseline in the low SOC range with relatively smaller errors. At the same time, it is also noticed that EKF is not always helpless in the low-range SOC estimation in the face of different driving cycles. The performance in the NYCC driving cycle is acceptable, and it can be considered that there is a particular adaptability problem for EKF. The NN-based method shows a relatively stable ability to estimate the low SOC range of the three operating conditions tested above and has a wide range of adaptability. It could be regarded as a potentially better solution to the low SOC range estimation. By further observation, in the inspection windows A and B in <xref ref-type="fig" rid="F13">Figure&#x20;13B</xref>, the estimation results of EKF gain a local advantage over NN. Therefore, under the framework of the fusion algorithm, this situation can further improve the estimation accuracy. It is still based on the NN algorithm, EKF is used as a reference for the fluctuation boundary, and the fusion estimation result obtained by fusing the advantages of the two estimation methods is shown in <xref ref-type="fig" rid="F13">Figure&#x20;13C</xref>. The SOC estimation method based on the fusion still achieves high accuracy locally. After zooming in the local area of the low-capacity interval in <xref ref-type="fig" rid="F13">Figure&#x20;13C</xref>, it shows that the SOC estimation error based on fusion is ideal. The designed estimation method could obtain an RMSE error value of 0.0097 and an MAE error value of 0.0066, achieving an MAE of 1.34%, while the error distributions are shown in <xref ref-type="fig" rid="F13">Figure&#x20;13D</xref>. The results shown above indicate that the proposed method is accurate, robust, and superior to the reference SOC estimation approaches under different operating conditions.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>The evaluation results for low battery capacity area under NYCC driving cycle. <bold>(A)</bold> The battery voltage and current <bold>(B)</bold> The SOC estimations for NYCC without fusion. <bold>(C)</bold> The SOC estimations for NYCC with fusion <bold>(D)</bold> The error analysis.</p>
</caption>
<graphic xlink:href="fenrg-09-790295-g013.tif"/>
</fig>
</sec>
<sec sec-type="conclusion" id="s5">
<title>Conclusion</title>
<p>This study investigates the online estimation of SOC for&#x20;lithium-ion batteries at the low-capacity range. Based on the analysis of battery charge and discharge data under&#x20;real vehicle cycle conditions, the battery model is established to identify and calibrate battery parameters and then focuses on the low-capacity SOC estimation analysis based on the EKF method. A fusion online estimation method is verified based on NN algorithms, which are the global mainstream trend, and the EKF, which is the local fluctuation boundary. The estimation results are evaluated by using the experiments under the UDDS, EUDC, and NYCC driving cycle, which results show that the proposed method can achieve a precise estimation result and the errors are as low as the RMSE of 0.0097 and the MAE of 0.0066. The method presented in this study could provide the precise information for expanding the driving range of electric vehicles and alleviate driver&#x2019;s mileage anxiety.</p>
</sec>
</body>
<back>
<sec id="s6">
<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="s7">
<title>Author Contributions</title>
<p>ZC made the contributions to the conception and design of the work. NZ and JC performed the algorithm, experiments, and result analysis. HL and ZF performed the algorithm programming. All authors read and contributed to the manuscript writing and revisions.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>This work has been supported by Vehicle Measurement, Control and Safety Key Laboratory of Sichuan Province (QCCK2021-005), the National Natural Science Foundation of China (51977029), the Fundamental Research Funds for the Central Universities (N2003002), and Liaoning Provincial Science and Technology planned project (2021JH6/10500135).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of Interest</title>
<p>The 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="s10">
<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>
<sec id="s11">
<title>Abbreviations</title>
<p>BMS, Battery management system; ECM, Equivalent circuit model; EKF, Extended kalman filter; EUDC, Extra Urban Driving Cycle; EVs, Electric vehicles; LiFePO4, Lithium iron phosphate; LSOC, Low-range state of charge; MAE, Mean Absolute Error; MLP, Multi-layered perceptron; MSE, Mean Squared Error; NCM, Nickel Manganese Cobalt Oxide; NN, Neural Network; NYCC, New York City Cycle; PEVs, Pure electric vehicles; RC, Resistor&#x2013;capacitor; RMSE, Root Mean Squared Error; SOC, State of Charge; UDDS, Urban Dynamometer Driving Schedule.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ali</surname>
<given-names>M. U.</given-names>
</name>
<name>
<surname>Zafar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Nengroo</surname>
<given-names>S. H.</given-names>
</name>
<name>
<surname>Hussain</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Alvi</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>H.-J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Towards a Smarter Battery Management System for Electric Vehicle Applications: A Critical Review of Lithium-Ion Battery State of Charge Estimation</article-title>. <source>Energies</source> <volume>12</volume> (<issue>3</issue>), <fpage>446</fpage>. <pub-id pub-id-type="doi">10.3390/en12030446</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bai</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Pecht</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>A Generic Model-free Approach for Lithium-Ion Battery Health Management</article-title>. <source>Appl. Energ.</source> <volume>135</volume>, <fpage>247</fpage>&#x2013;<lpage>260</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2014.08.059</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Barai</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Widanage</surname>
<given-names>W. D.</given-names>
</name>
<name>
<surname>Marco</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>McGordon</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Jennings</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>A Study of the Open Circuit Voltage Characterization Technique and Hysteresis Assessment of Lithium-Ion Cells</article-title>. <source>J.&#x20;Power Sourc.</source> <volume>295</volume>, <fpage>99</fpage>&#x2013;<lpage>107</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2015.06.140</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mei</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A Fast Impedance Calculation Based Battery State-Of-Health Estimation Method</article-title>. <source>IEEE Trans. Ind. Electron.</source>, <fpage>1</fpage>. <pub-id pub-id-type="doi">10.1109/tie.2021.3097668</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hannan</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Lipu</surname>
<given-names>M. S. H.</given-names>
</name>
<name>
<surname>Hussain</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ker</surname>
<given-names>P. J.</given-names>
</name>
<name>
<surname>Mahlia</surname>
<given-names>T. M. I.</given-names>
</name>
<name>
<surname>Mansor</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Toward Enhanced State of Charge Estimation of Lithium-Ion Batteries Using Optimized Machine Learning Techniques</article-title>. <source>Sci. Rep.</source> <volume>10</volume> (<issue>1</issue>), <fpage>1</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1038/s41598-020-61464-7</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hannan</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Hoque</surname>
<given-names>M. M.</given-names>
</name>
<name>
<surname>Hussain</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Yusof</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ker</surname>
<given-names>P. J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>State-of-the-art and Energy Management System of Lithium-Ion Batteries in Electric Vehicle Applications: Issues and Recommendations</article-title>. <source>Ieee Access</source> <volume>6</volume>, <fpage>19362</fpage>&#x2013;<lpage>19378</lpage>. <pub-id pub-id-type="doi">10.1109/access.2018.2817655</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>He</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Williard</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Pecht</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>State of Charge Estimation for Li-Ion Batteries Using Neural Network Modeling and Unscented Kalman Filter-Based Error Cancellation</article-title>. <source>Int. J.&#x20;Electr. Power Energ. Syst.</source> <volume>62</volume>, <fpage>783</fpage>&#x2013;<lpage>791</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijepes.2014.04.059</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>A New Neural Network Model for the State-Of-Charge Estimation in the Battery Degradation Process</article-title>. <source>Appl. Energ.</source> <volume>121</volume>, <fpage>20</fpage>&#x2013;<lpage>27</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2014.01.066</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>K. T.</given-names>
</name>
<name>
<surname>Dai</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Chuang</surname>
<given-names>C. C.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Temperature-compensated Model for Lithium-Ion Polymer Batteries with Extended Kalman Filter State-Of-Charge Estimation for an Implantable Charger</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>65</volume> (<issue>1</issue>), <fpage>589</fpage>&#x2013;<lpage>596</lpage>. </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cho</surname>
<given-names>B. H.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>State-of-charge and Capacity Estimation of Lithium-Ion Battery Using a New Open-Circuit Voltage versus State-Of-Charge</article-title>. <source>J.&#x20;Power Sourc.</source> <volume>185</volume> (<issue>2</issue>), <fpage>1367</fpage>&#x2013;<lpage>1373</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2008.08.103</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lipu</surname>
<given-names>M. S. H.</given-names>
</name>
<name>
<surname>Hannan</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Hussain</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Saad</surname>
<given-names>M. H. M.</given-names>
</name>
<name>
<surname>Ayob</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Blaabjerg</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>State of Charge Estimation for Lithium-Ion Battery Using Recurrent NARX Neural Network Model Based Lighting Search Algorithm</article-title>. <source>IEEE access</source> <volume>6</volume>, <fpage>28150</fpage>&#x2013;<lpage>28161</lpage>. <pub-id pub-id-type="doi">10.1109/access.2018.2837156</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>L.V.</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Online Estimation of State of Power for Lithium-Ion Batteries in Electric Vehicles Using Genetic Algorithm</article-title>. <source>Ieee Access</source> <volume>6</volume>, <fpage>20868</fpage>&#x2013;<lpage>20880</lpage>. <pub-id pub-id-type="doi">10.1109/access.2018.2824559</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meng</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Ricco</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Swierczynski</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Stroe</surname>
<given-names>D.-I.</given-names>
</name>
<name>
<surname>Teodorescu</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Overview of Lithium-Ion Battery Modeling Methods for State-Of-Charge Estimation in Electrical Vehicles</article-title>. <source>Appl. Sci.</source> <volume>8</volume> (<issue>5</issue>), <fpage>659</fpage>. <pub-id pub-id-type="doi">10.3390/app8050659</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ouyang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>G.</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>Han</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Enhancing the Estimation Accuracy in Low State-Of-Charge Area: A Novel Onboard Battery Model through Surface State of Charge Determination</article-title>. <source>J.&#x20;Power Sourc.</source> <volume>270</volume>, <fpage>221</fpage>&#x2013;<lpage>237</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2014.07.090</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qiu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Remaining Useful Life Prediction of Lithium-Ion Battery Based on Improved Cuckoo Search Particle Filter and a Novel State of Charge Estimation Method</article-title>. <source>J.&#x20;Power Sourc.</source> <volume>450</volume>, <fpage>227700</fpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2020.227700</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ranjbar</surname>
<given-names>A. H.</given-names>
</name>
<name>
<surname>Banaei</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Khoobroo</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Fahimi</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Online Estimation of State of Charge in Li-Ion Batteries Using Impulse Response Concept</article-title>. <source>IEEE Trans. Smart Grid</source> <volume>3</volume> (<issue>1</issue>), <fpage>360</fpage>&#x2013;<lpage>367</lpage>. <pub-id pub-id-type="doi">10.1109/TSG.2011.2169818</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Shrivastava</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Soon</surname>
<given-names>T. K.</given-names>
</name>
<name>
<surname>Idris</surname>
<given-names>M. Y. I. B.</given-names>
</name>
<name>
<surname>Mekhilef</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Overview of Model-Based Online State-Of-Charge Estimation Using Kalman Filter Family for Lithium-Ion Batteries</article-title>. <source>Renew. Sustain. Energ. Rev.</source> <volume>113</volume>, <fpage>109233</fpage>. <pub-id pub-id-type="doi">10.1016/j.rser.2019.06.040</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tian</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>State of Charge Estimation of Lithium-Ion Batteries Using an Optimal Adaptive Gain Nonlinear Observer</article-title>. <source>Electrochimica Acta</source> <volume>225</volume>, <fpage>225</fpage>&#x2013;<lpage>234</lpage>. <pub-id pub-id-type="doi">10.1016/j.electacta.2016.12.119</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>State of Charge Estimation for LiFePO4 Battery via Dual Extended Kalman Filter and Charging Voltage Curve</article-title>. <source>Electrochimica Acta</source> <volume>296</volume>, <fpage>1009</fpage>&#x2013;<lpage>1017</lpage>. <pub-id pub-id-type="doi">10.1016/j.electacta.2018.11.156</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xing</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Pecht</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tsui</surname>
<given-names>K. L.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>State of Charge Estimation of Lithium-Ion Batteries Using the Open-Circuit Voltage at Various Ambient Temperatures</article-title>. <source>Appl. Energ.</source> <volume>113</volume>, <fpage>106</fpage>&#x2013;<lpage>115</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2013.07.008</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiong</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Critical Review on the Battery State of Charge Estimation Methods for Electric Vehicles</article-title>. <source>Ieee Access</source> <volume>6</volume>, <fpage>1832</fpage>&#x2013;<lpage>1843</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2017.2780258</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xiong</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>A Data-Driven Multi-Scale Extended Kalman Filtering Based Parameter and State Estimation Approach of Lithium-Ion Polymer Battery in Electric Vehicles</article-title>. <source>Appl. Energ.</source> <volume>113</volume>, <fpage>463</fpage>&#x2013;<lpage>476</lpage>. <pub-id pub-id-type="doi">10.1016/j.apenergy.2013.07.061</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Mei</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Fu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>A Relative State of Health Estimation Method Based on Wavelet Analysis for Lithium-Ion Battery Cells</article-title>. <source>IEEE Trans. Ind. Electron.</source> <volume>68</volume> (<issue>8</issue>), <fpage>6973</fpage>&#x2013;<lpage>6981</lpage>. <pub-id pub-id-type="doi">10.1109/tie.2020.3001836</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Miao</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>State-of-charge Estimation of Lithium-Ion Batteries Based on Gated Recurrent Neural Network</article-title>. <source>Energy</source> <volume>175</volume>, <fpage>66</fpage>&#x2013;<lpage>75</lpage>. <pub-id pub-id-type="doi">10.1016/j.energy.2019.03.059</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>State of Charge Estimation for Lithium-Ion Battery with a Temperature-Compensated Model</article-title>. <source>Energies</source> <volume>10</volume> (<issue>10</issue>), <fpage>1560</fpage>. <pub-id pub-id-type="doi">10.3390/en10101560</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hua</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>Y.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>A Parameter Adaptive Method for State of Charge Estimation of Lithium-Ion Batteries with an Improved Extended Kalman Filter</article-title>. <source>Scientific Rep.</source> <volume>11</volume> (<issue>1</issue>), <fpage>1</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1038/s41598-021-84729-1</pub-id> </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>State-of-charge Estimation of Valve Regulated lead Acid Battery Based on Multi-State Unscented Kalman Filter</article-title>. <source>Int. J.&#x20;Electr. Power Energ. Syst.</source> <volume>33</volume> (<issue>3</issue>), <fpage>472</fpage>&#x2013;<lpage>476</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijepes.2010.10.010</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Xia</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lai</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>W.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>State of the Art of Lithium-Ion Battery SOC Estimation for Electrical Vehicles</article-title>. <source>Energies</source> <volume>11</volume> (<issue>7</issue>), <fpage>1820</fpage>. <pub-id pub-id-type="doi">10.3390/en11071820</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zheng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>M.</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>
</person-group> (<year>2018</year>). <article-title>Investigating the Error Sources of the Online State of Charge Estimation Methods for Lithium-Ion Batteries in Electric Vehicles</article-title>. <source>J.&#x20;Power Sourc.</source> <volume>377</volume>, <fpage>161</fpage>&#x2013;<lpage>188</lpage>. <pub-id pub-id-type="doi">10.1016/j.jpowsour.2017.11.094</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
</person-group> (<conf-date>2015 August</conf-date>). &#x201c;<article-title>Overview of Lithium-Ion Battery SOC Estimation</article-title>,&#x201d; in <conf-name>Proceedings of the 2015 IEEE International Conference on Information and Automation</conf-name>, <conf-loc>Lijiang, China</conf-loc> (<publisher-name>IEEE</publisher-name>), <fpage>2454</fpage>&#x2013;<lpage>2459</lpage>. <pub-id pub-id-type="doi">10.1109/icinfa.2015.7279698</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>