This repository has been archived by the owner on Sep 18, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocument.tex
344 lines (287 loc) · 36.7 KB
/
document.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{authblk}
\usepackage[a4paper,top=2cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorlinks=true, allcolors=blue]{hyperref}
\usepackage{booktabs} % professional-quality tables
\usepackage{cite}
\usepackage{subcaption}
\usepackage{hyperref}
\title{基于机器学习流水线的电池健康状态估计方法}
\author[1]{\small Darius Roman}
\author[2, 4]{Saurabh Saxena}
\author[1, 3, 5]{Valentin Robu}
\author[2]{Michael Pecht}
\author[1]{David Flynn}
\affil[1]{\raggedright Smart Systems Group, School of Engineering \& Physical Sciences, Heriot-Watt University, Edinburgh, EH14 4AS, UK.}
\affil[2]{Center for Advanced Life Cycle Engineering, University of Maryland, College Park, MD 20742, USA.}
\affil[3]{Algorithmics Group, TU Delft, Delft, the Netherlands.}
\affil[4]{Present address: Argonne National Laboratory, Lemont, USA. }
\affil[5]{Present address: Intelligent and Autonomous Systems Group, CWI, National Research Centre for Mathematics and Computer Science, Amsterdam, the Netherlands.}
\date{}
\begin{document}
\maketitle
\begin{abstract}
从便携电子设备到电动汽车,锂离子电池在各种场景中的应用越发广泛。无论哪种应用场景,都要求通过设备机载控制器对电池健康状态(state of health,SOH)进行实时可靠地估计以保证电池安全运行并最终保证系统的完整性和可靠性。实际应用中通常使用电池容量作为电池性能退化指标,本文设计并评估了一种基于机器学习流水线的电池容量估计方法,并在179块电池(分别在不同工况下工作)的循环数据上进行测试。本文的模型使用了两个参数化方法和两个非参数化方法,实现了电池SOH估计并给出估计结果的置信区间。机器学习流水线模型从充电过程中的部分电压和电流数据中提取了三十个特征并进行自动特征选择和算法标定步骤。当把机器学习流水线模型部署在使用快充策略的电池数据集上时,算法达到均方根误差(root mean squared error,RMSE)仅0.45\% 的预测精度。我们的方法为设计灵活可拓展的数据驱动的电池SOH估计模型提供了深刻理解,同时强调了预测置信区间的重要性。我们提出的机器学习流水线方法结合了实验数据和机器学习建模,可应用于其他需要实时估计SOH的关键部件。
\end{abstract}
\section{简介}
可充电锂离子电池在许多应用领域中都扮演着重要角色,包括便携式电子设备、医疗设备、电网的可再生能源消纳环节和电动汽车等。在2010年至2016年期间,锂离子电池价格陡降73%,在2017年达到历史最低点,为每千瓦时273美元\cite{ref1},这为估值高达650亿美元的巨大的储能市场打开了大门\cite{ref2}。不管应用场景如何,锂离子电池随着时间而老化,且在老化过程中,电池呈现出容量降低、内阻增大的趋势。电池的老化速度受动态运行条件影响,包括不同的充放电速率、不同的运行电压限制和运行过程中的温度变化。能够不依赖具体机理、使用数据驱动方法实现实时电池退化状态估计对是安全、有效的电池管理系统中非常重要的环节\cite{You2017}。电池健康状态可以用来预测电池的预期寿命,但是通过直接测量电池内部电化学反应参数来进行在线电池健康状态估计的方法目前仍十分有限\cite{Barré2013}。
SOH是一个用于量化电池的一般状态和与未使用状态相比提供指定性能能力的指标,这个性能可以用容量或阻抗来衡量。我们选择电池的容量作为其健康指标,因为容量与电池的能量储存能力有关,直接影响电池剩余运行时间和寿命。容量衰减估计这一问题已经引起了工业界和学术界的广泛关注\cite{Barré2013, Zhang2011, Farmann2015, Hannan2017},大量的方法已经被提出。现有的实现电池容量退化估计的方法主要包括基于电化学模型的方法\cite{Hu2012, Feng2015, Andre2011}、基于等效电路的方法\cite{ref11, ref12, Prasad2013}和数据驱动的方法\cite{Severson2019, Saha2008, Goebel2008, Hu2015, Klass2014, Attia2020}。电化学模型近似描述电池在操作期间内发生的化学过程,使用这种方法要求对电池工作机理(如电极材料和电解质的性质)的非常详尽的认识,同时该方法通常利用复杂的偏微分方程,使得其对存储空间和计算能力的要求很高。等效电路模型使用具有经验非线性参数的电路组件取代实际电池元件\cite{Feng2015}。与电化学模型相比,等效电路模型使用较少的输入,大大减少了需要学习的参数数量。但这种方法的预测性能很大程度上取决于对“等效”假设的准确性。事实上,假设往往难以拟合实际工作情况,导致等效电路模型准确性和鲁棒性有限\cite{Hu2012}。此外,为了在不同的电池荷电状态值下确定等效电路模型参数(例如欧姆阻抗和并联电阻-电容阻抗),通常需要进行脉冲放电\cite{Coleman2008}和电化学阻抗谱分析\cite{Andre2011, Waag2013, Tröltzsch2006},然而,这些测量并不适用于在线应用。
相反地,数据驱动的方法有着诸多好处,包括1)这种方法与具体化学机理无关和2)这种方法能够分析更完整的退化过程,如在小负载工况下的容量退化过程(这种情形往往会被上述两种方法忽略)。到目前为止,许多研究已经使用机器学习方法进行电池健康状态估计的分析。增量容量分析和差分电压分析是分析电池老化机理的方法\cite{Birkl2017}。几项研究表明\cite{Birkl2017, Li2019, Li2018a, ref26, Feng2019},这类方法可以用于离线和在线电池容量性能衰退估计。然而,这类方法有几个缺点,为了得到增量容量曲线,需要对容量-电压曲线进行微分,这会放大噪音并将其传播到算法中。此外,这类方法工作的前提是两条曲线覆盖足够的电压范围,并限制在低充电电流率(1/5到1/25倍率)下\cite{Li2018b, Dubarry2006, Weng2013},以获得高保真曲线。只有当充电时使用低电流值并准确记录容量-电压曲线的关键部分,才能捕捉到增量容量曲线中的特定峰值点并据此进行在线的电池容量估计。
为了解决上述问题,一种替代方法是使用原始的电压-时间数据作为算法输入进行训练,从而消除微分操作\cite{Yang2018, Richardson2018}。值得注意的是Richardson等人提出了一种方法\cite{Richardson2018},这种方法首先对电压-时间数据进行Savitsky-Golay滤波使之变得平滑,然后将等间距电压值作为高斯过程回归(GPR)算法的输入。但是,GPR的训练过程消耗很多的计算资源(计算复杂度主要取决于核函数决定)\cite{ref33},使得它并不适用于在线电池容量估计场景,此外,高计算复杂性使得这一算法很难向大规模电池退化数据集拓展,最后,GPR,对输入的电压-时间曲线的部分非常敏感。其他基于贝叶斯的方法,例如相关向量机(RVM)\cite{ref34},也已用于估计电池容量退化,但是RVM也同样面临因训练速度慢而难以应用的问题,尤其是当与其他频率主义方法相比时\cite{Ben-Shimon2006}。Shen\cite{ref33}等人提出了加速GPR训练过程的方法,代价是牺牲预测精度。与文献\cite{Richardson2018}使用充电曲线的恒流充电段策略不同,Wang等人\cite{Wang2018}使用了恒压充电段作为输入,通过支持向量回归(SVR)来估计容量衰减。SVR确实比GPR速度快,但这种方法并不能给出预测结果的不确定度。应用上往往需要结合估计结果和结果的不确定度量以提供足够的信息进行决策,SVR在不确定度估计方面的缺失是难以将它应用在复杂动态系统(如锂离子电池)寿命预测的主要原因\cite{ref37}。
过去的研究或对SOH估计的不确定度评估有限,或根本没有进行评估\cite{Hu2012, Feng2015, Andre2011, ref11, ref12, Prasad2013, Severson2019, Saha2008, Goebel2008, Hu2015, Klass2014, Attia2020, Coleman2008, Waag2013, Tröltzsch2006, Birkl2017, Li2019, Li2018a, ref26, Feng2019, Li2018b, Dubarry2006, Weng2013, Yang2018, Richardson2018, ref33, ref34, Ben-Shimon2006, Wang2018}。我们提出的模型(battery health and uncertainty management pipeline,以下简称BHUMP),能够实时电池健康状态估计并给出估计结果的不确定度。BHUMP对获得的数据流进行分层操作,首先,在原始充电曲线分段上进行特征工程研究,继而算法自动进行离线特征提取、通过对抗样本(人为添加噪声诱导模型生成错误结果)进行数据增广并借助四种机器学习算法得到电池健康状态及其不确定度的估计。具体地,不确定性量化通过校准误差和改进的准确度度量($\alpha$−$\beta$ 准确度区域)实现。毫无疑问现实世界中电池有不同的设计\cite{ref38},使用不同材料\cite{Seh2016},为了验证模型的泛化性能,我们在179块电池上对算法进行评估,这些电池采用不同的结构形式(圆柱电池、方形电池或软包电池)、不同正极材料(磷酸铁锂或钴酸锂)、不同充电协议(恒流充电、恒流-恒压充电或两步快速充电协议)和不同充放电倍率。
本文优化改进了以往的电池健康状态估计方法,并针对我们提出的机器学习流水线模型进行了大量测试,同时定义了用于电池健康状态估计及其不确定性度量问题中使用的机器学习模型中的不确定性的指标。BHUMP为研究者提供了一套高鲁棒性的电池健康状态估计解决方案,这套框架对各种不同化学机理的电池在各种工作条件下的状态预测都适用。BHUMP建立电池模型并从中提取中特征,这些特征能够充分反映电池内部老化过程并估计电池健康状态,这一方法不仅能通过不超过15分钟的充放电循环特征实现预测,同时预测精度比以往的方法都要好。我们的算法输出准确的电池健康状态估计及其不确定性,这些输出将被进一步用于估计电池荷电状态和剩余寿命,从而指导电池充放电决策,改善电池性能并最终延长电池寿命。
\section{机器学习流水线模型}
站在机器学习的视角上,电池健康状态估计可以被视为多变量监督学习问题。我们引入一种基于流水线(pipeline)的方法,这种方法首先在电池充电/放电循环数据上实施特征工程特征工程,通过特征工程提取的强相关特征被用于训练机器学习模型(可以是贝叶斯模型或频率模型),最后通过估计预测结果的分布的均值和标准差量化预测结果的不确定度。我们的学习模型包括两个阶段,阶段一为离线流水线构建和训练阶段,阶段二为在线电池健康状态估计阶段。具体地,离线阶段进行特征工程实施、训练数据增广、自动特征选择、回归模型训练和不确定性标定。在线阶段在未知电池容量的条件下使用训练好的机器学习流水线模型进行电池健康状态诊断。辅助材料中归纳了这两个阶段的流程图。
特征工程分为两种,一种是通过神经网络自动编码器等方法实现自动特征生成/提取\cite{ref40, ref41},另一种则是通过领域先验知识进行特征构建\cite{Williard2013, ref43}。我们采用基于先验知识的特征建模方法,这种方法选择对目标值贡献最多的特征量。在辅助材料的第一部分,我们还提供了一个旨在揭示电池的部分充电过程是如何量化电池容量退化的潜在机理的假设。辅助材料中的表一总结了我们在电池循环测试中记录的各种测量量。我们的机器学习流水线模型关注充电曲线片段,通过部分充电段数据捕捉电池在充放电循环中的退化信息(图 \ref{features_calce} 展示了一种典型的片段选取方法)。被选中的充电曲线片段将被用于进行特征工程。
\begin{figure*}[h!]
\centering
\resizebox{\textwidth}{!}{%
\begin{tabular}[t]{ccc}
\begin{tabular}{c}% if you add [t], than sub images are pushed down
\smallskip
\begin{subfigure}[b]{.6\textwidth}
\centering
\caption{}
\includegraphics[width=\textwidth]{assets/CC_charge_cell_no_11.pdf}
\label{thresholds_v_gr1}
\end{subfigure}\\
\begin{subfigure}[b]{.6\textwidth}
\centering
\caption{}
\includegraphics[width=\textwidth]{assets/CV_charge_cell_no_11.pdf}
\label{thresholds_c_gr1}
\end{subfigure}
\end{tabular}
&
\begin{tabular}{c}% if you add [t], than sub images are pushed down
\smallskip
\begin{subfigure}[b]{.55\textwidth}
\caption{}
\centering
\includegraphics[width=.9\textwidth]{assets/CC_prismatic_pl_cell_no_11.pdf}
\label{b1}
\end{subfigure}\\
\begin{subfigure}[b]{.55\textwidth}
\centering
\caption{}
\includegraphics[width=.9\textwidth]{assets/CV_prismatic_pl_cell_no_11.pdf}
\label{d1}
\end{subfigure}
\end{tabular}
&
\begin{subfigure}{0.45\textwidth}
\centering
\caption{}
\includegraphics[width=0.47\textwidth]{assets/heatmap_cell_no_11.pdf}
\label{e1}
\end{subfigure}
\end{tabular}
}
\caption{\textbf{软包电池恒定电压-恒定电流协议充放电示意图及其随时间分布曲线} \textbf{\protect\subref{thresholds_v_gr1}} 充电过程中电压曲线,\textbf{\protect\subref{thresholds_c_gr1}}充电过程电流曲线,\textbf{\protect\subref{b1}} 提取的电压曲线段随时间分布示意图,\textbf{\protect\subref{d1}} 提取的电流曲线段随时间分布示意图,\textbf{\protect\subref{e1}} 随循环圈数增加的老化程度热力图。}
\label{features_calce}
\end{figure*}
我们提出的流水线方法构造了30个特征,并使用和文献\cite{Guyon2002}提出的方法类似的基于随机森林的递归特征消除交叉验证法(RF-RFE-CV)选出与待预测结果最相关的特征量(递归特征消除法的总体性能胜过了其他传统方法\cite{Darst2018, Gregorutti2017},这是我们选择它的原因)。在训练之前,我们引入Goodfellow等人提出的对抗样本\cite{ref47}进行数据增强,使用对抗样本的原因是为了改善电池设计或化学成分差异带来的影响。此外,使用对抗数据进行训练可以使算法对离群样本具有鲁棒性以防止过拟合,并减少预测分布围绕其均值(预测值)的波动。以Doyle等人提出的锂电池准二维模型为例\cite{Doyle1993},很多电化学模型生成合成数据的过程也可以被视为一种数据增强过程。这种方法结合了电化学模型和基于数据的模型的潜力,我们认为未来的研究必须同时整合合成数据。在训练过程中,我们使用权重衰退法进行正则化以约束模型复杂度,提高模型泛化能力。
增强的数据样本被作为四种算法的训练输入,这些算法分别是:随机森林(random forest,RF)和集成深度神经网络(deep neural network ensemble,dNNe)、贝叶斯岭回归(Bayesian ridge regression,BRR)和高斯过程回归(Gaussian Process Regression,GPR)。与基于贝叶斯主义的BRR和GPR不同,频率学派的方法受限于其基本假设和表述形式无法给出预测结果不确定性度量。为了克服这种局限性,我们考虑了两种改良的基于集成学习的算法:基于“无穷小刀切法”(infinitesimal jackknife,IJ)的置信区间估计\cite{Wager2014}和神经网络集成学习\cite{ref50}。为了训练这些模型,我们使用自适应矩估计(Adaptive Moment Estimation,Adam)优化器训练集成神经网络模型,用随机搜索的方法调整余下所有模型的超参数\cite{Bergstra2012}。在训练过程中我们发现,从均匀分布中抽取随机样本对BRR和GPR的参数训练来说效果最好,而对RF和dNNe参数训练,随机初始化可以得到令人满意的结果。此外,在超参数调整过程中,使用了批量交叉验证方法,每个批次由一个单元代表,这样的策略既防止了模型的过拟合,同时模拟了在线部署的情形。工程上应用的机器学习模型需要从预测结果误差和针对预测结果的不确定性量化角度进行严格的性能评估,为此,我们先对模型进行重新校准,然后根据平均绝对百分比误差、均方根误差和不确定性估计指标进行评估。
\section{数据集}
\begin{table*}[h!]
\centering
\resizebox{\textwidth}{!}{%
\begin{tabular}{@{}cccccccc@{}}
\toprule
Group{*} & I & I & I & I & I & II & III \\ \hline
Dataset & CALCE CS2 & CALCE CX2 & CALCE PL & NASA 5 & NASA11 & TRI{**} & Oxford \\ \midrule
Manufacturer & Unknown & Unknown & Unknown & LG Chem & LG Chem & A123 Systems & Kokam \\ \midrule
Cathode \textsuperscript{***} & LiCoO$_{2}$ & LiCoO$_{2}$ & LiCoO$_{2}$ & LiCoO$_{2}$ & LiCoO$_{2}$ & LiFePO$_{4}$ & \begin{tabular}[c]{@{}c@{}}LiCoO$_{2}$ /\\ LiNiMnCoO$_{2}$\end{tabular} \\ \midrule
Form factor & Prismatic & Prismatic & Pouch & \begin{tabular}[c]{@{}c@{}}18650\\ Cylindrical\end{tabular} & \begin{tabular}[c]{@{}c@{}}18650\\ Cylindrical\end{tabular} & \begin{tabular}[c]{@{}c@{}}18650\\ Cylindrical\end{tabular} & Pouch \\ \midrule
\# cells & 6 & 6 & 2 & 8 & 25 & 124 & 8 \\ \midrule
Charge & CC-CV & CC-CV & CC-CV & CC-CV & CC-CV & Fast-charge & CC \\ \midrule
Discharge & 2 regimes & 2 regimes & 1 regime & 2 regimes & 7 regimes & 1 regime & 1 regime \\ \midrule
\multicolumn{8}{l}{ \begin{tabular}[c]{@{}l@{}}\textsuperscript{*}\footnotesize{Groups based on charge protocol}, \textsuperscript{**}\footnotesize{Toyota Research Institute}, \textsuperscript{***}\footnotesize{Information from manufacturer, not verified}\end{tabular}}
\end{tabular}%
}
\caption{本文使用的数据集概述}
\label{data_rep}
\end{table*}
我们在一个包含179颗电芯的数据集上测试BHUMP的性能,对于数据集的描述参考表 \ref{data_rep} 。这些电芯按照充电协议的不同被划分为三组,具体地,采用恒流-恒压(constant current - constant voltage,CC-CV)充电协议的电芯被划分进第一组(47颗电芯),采用恒流(constant current,CC)充电协议的电芯被划分进第二组(124颗电芯),采用两步快充(2-step fast-charging)协议的电芯被划分进第三组(8颗电芯)。这种划分很重要,实施BHUMP需要依据此分组进行特征选择、模型训练和模型评估。对于数据集的更详尽的描述可参考辅助材料中的第四部分。
\section{算法性能}
原文依据充电协议差异将电池划分为三组,三组的性能分析内容几乎一致,这里只翻译第一组数据的算法性能评估结果。
\subsection{第一组数据集上的实验}
根据上述机器学习流水线模型的实施步骤,在进行特征工程后选择了18个特征作为本组数据的最优特征数量。对于阈值设置,我们将上限电压阈值$V_h$设置为4.2V,下限电压阈值$V_l$设置为3.9V。关于特征选择和训练集/验证集划分的细节请看补充材料。
\begin{table}[h!]
\centering
\resizebox{.47\textwidth}{!}{%
\begin{tabular}{l|c|c|c|c|c|c|c|}
\cline{2-8}
& \multicolumn{1}{l|}{MAPE} & \multicolumn{1}{l|}{RMSPE} & \multicolumn{1}{l|}{$C_{score}$} & \multicolumn{1}{l|}{$Sh$} & \multicolumn{1}{l|}{$\alpha$-accuracy} & \multicolumn{1}{l|}{$\beta$} & \multicolumn{1}{l|}{$PEP$} \\ \hline
\multicolumn{1}{|l|}{BRR} & 1.52 & 2.49 & 84.49 & 0.021 & 70.00 & 0.57 & 68.92 \\ \hline
\multicolumn{1}{|l|}{GPR} & 1.49 & 2.24 & 92.23 & 0.025 & 65.00 & 0.48 & 71.76 \\ \hline
\multicolumn{1}{|l|}{RF} & 0.72 & 0.91 & 100 & 0.046 & 92.00 & 0.29 & 95.29 \\ \hline
\multicolumn{1}{|l|}{dNNe} & 0.65 & 0.92 & 88.01 & 0.0082 & 93.00 & 0.93 & 97.71\\ \hline
\end{tabular}%
}
\caption{38号电池的预测性能}
\label{results_group1_cell_38}
\end{table}
如图 \ref{predictions_group1_dNNE} 展示了当dNNe作为基算法时BHUMP模型在一块随机选择的软包电池(编号为38)上的预测性能,表 \ref{results_group1_cell_38} 展示了四种算法在38号电池上的性能。该电池在CC-CV充电协议下以0.5C倍率充电,然后在4.2V和2.7V之间以0.5C倍率进行全深度放电。
比较dNNe算法和其余三个算法(RF、BRR和GPR)的性能,我们发现前者生成的置信区间相对较小(所有图表均显示相当于95\%分位数的置信水平,即$\mu±2\sigma$,其中$\mu$为预测均值),较小的置信区间表明算法具有更高的主准确度,表现为对应的$\beta$值较大。当预测不那么准确时(如当预测一颗电池前几个循环的健康状态时),误差带可以很好反映这种变化。在38号电池上,dNNe算法dNNe也实现了最佳平均绝对百分比误差(MAPE)和均方根百分比误差(RMSPE),同时有很高的校准得分。如表 \ref{results_group1_cell_38} 所示,38号电池的预测值的RMSPE在0.65\%到1.52\%之间,表明四种算法都能实现较高的预测性能。然而,RF算法校准后预测的分布仍表现出较大波动。
\begin{figure*}[h!]
\centering
% \hfil
\begin{subfigure}[b]{.55\textwidth}
\centering
\caption{}
\includegraphics[width=\linewidth]{assets/gr1_prediction_dNNe.pdf}
\label{pred_group1_dNNe}
\end{subfigure}%
% \hfill
\begin{subfigure}[b]{.3\textwidth}
\centering
\caption{}
\includegraphics[width=\linewidth]{assets/gr1_calibration_dNNe.pdf}
\label{calibration_group1_dNNE}
\end{subfigure}%
\hfill
\begin{subfigure}[b]{.55\textwidth}
\centering
\caption{}
\includegraphics[width=\linewidth]{assets/gr1_prediction_vs_true_dNNe.pdf}
\label{prediction_vs_true_dNNe_group1}
\end{subfigure}%
% \hfill
\begin{subfigure}[b]{.3\textwidth}
\centering
\caption{}
\includegraphics[width=\linewidth]{assets/gr1_histogram_dNNe.pdf}
\label{hist_group1_dNNE}
\end{subfigure}%
\hfill
\caption{\textbf{dNNe作为基算法在38号电池上的预测结果} \textbf{\protect\subref{pred_group1_dNNe}} dNNe预测的容量-时间曲线,\textbf{\protect\subref{calibration_group1_dNNE}} dNNE算法标定结果, \textbf{\protect\subref{prediction_vs_true_dNNe_group1}} dNNe预测值和真实值对照, \textbf{\protect\subref{hist_group1_dNNE}} 百分比误差柱状图(其中$y^*$为真实容量,$\hat{y}^*$为预测容量)。}
\label{predictions_group1_dNNE}
\end{figure*}
\begin{table}[h!]
\centering
\resizebox{.47\textwidth}{!}{%
\begin{tabular}{l|c|c|c|c|c|c|c|}
\cline{2-8}
& \multicolumn{1}{l|}{MAPE} & \multicolumn{1}{l|}{RMSPE} & \multicolumn{1}{l|}{$C_{score}$} & \multicolumn{1}{l|}{$Sh$} & \multicolumn{1}{l|}{$\alpha$-accuracy} & \multicolumn{1}{l|}{$\beta$} & \multicolumn{1}{l|}{$PEP$} \\ \hline
\multicolumn{1}{|l|}{BRR} & 4.65 & 5.54 & 89.16 & 0.104 & 25.76 & 0.25 & 36.57 \\ \hline
\multicolumn{1}{|l|}{GPR} & 3.70 & 4.51 & 83.62 & 0.089 & 32.04 & 0.29 & 60.07 \\ \hline
\multicolumn{1}{|l|}{RF} & 2.17 & 2.70 & 54.70 & 0.093 & 35.94 & 0.36 & 65.47 \\ \hline
\multicolumn{1}{|l|}{dNNe} & 3.30 & 4.26 & 86.28 & 0.043& 32.14 & 0.58 & 63.26 \\ \hline
\end{tabular}%
}
\caption{第一组数据的平均预测性能}
\label{results_group1}
\end{table}
当讨论算法对第一组数据集中所有电池的平均预测性能时(表 \ref{results_group1} 总结了四种算法在第一组数据集上的平均性能),我们发现RF达到了相对较低的校准误差(54.70\%),我们认为这归因于我们使用IJ方法来估计分布。在实践中,我们往往偏向保守系统,尤其是系统安全性非常重要时。这意味着对应预测值低于真实值(位于$\alpha$准确度区域中,如图 \ref{accuracy_zone} )的样本应该比对应预测值高于真实值的样本多,换言之,适用于工业检测场景的算法的PEP指标应接近100\%。同时,容量估计过低会导致算法过于保守。然而,这种行为通过RMSPE的增加自然被缓解。
参考图 \ref{prediction_vs_true_dNNe_group1} 和表 \ref{results_group1_cell_38} ,dNNe是保守的,其PEP得分最高。
\begin{figure}[h!]
\centering
\includegraphics[width = .4\textwidth]{assets/accuracy_zone.pdf}
\captionof{figure}{$\alpha$-准确性区域和 $\beta$ 概率质量分布示意图}
\label{accuracy_zone}
\end{figure}
总体上,尽管RF算法在RMSPE和MAPE两个指标上得到了最高的分数(见表 \ref{results_group1} ),但它不能输出良好校准的预测结果,预测的精度也偏低。相比之下,dNNe模型输出的是一个良好校准的预测结果,平均校准得分仅比理想得分低不到4\%,其MAPE和RMSPE指标分别为1.13\%和1.56\%。
\section{本文方法在实际场景中适用性的讨论}
BHUMP可以用于电池管理系统,取代传统的等效电路模型进行电池健康状态和电池荷电状态估计。传统方法依赖静态条件(如完全充放电)下的容量信息,而BHUMP可以根据充放电片段的测量量进行电池容量退化估计,对不同工况(如随机充放电情形和高倍率充放电情形)适应性更好。BHUMP可以估计使用两步快充协议充电电池和采用随机放电(ARTEMIS驾驶协议)情形的电池的容量退化情况,这两个过程对目前电动汽车电池组而言是典型操作。未来的工作可以将模型进一步拓展到采用不同充放电协议的开源电池数据集上\cite{Attia2020}。
充电过程中的温度变化会进一步将不确定性引入充电段数据的测量,并将其传播到预测算法中。可能的解决方案包括在训练BHUMP时将温度作为输入,或将其他现场感知信息如图像(光学图像/数字图像)或X射线数据\cite{Handoko2018}等加入输入,从而使得算法能够学习温度、生成的特征和SOH指标之间的相关性。这一问题事实上进一步强调了不确定性估计的重要性,单一的健康状态估计结果无法提供下一步决策所需要的完整信息。除了固有的算法偏差,数据集的变化也会影响预测准确度。为了适应数据中的这种变化,BHUMP实施工程特征得到了30个特征量,并利用了无监督的特征选择算法(RF-RFE-CV)选择若干最相关的特征作为BHUMP输入。考虑到不同的数据集存在分布差异,我们认为深度学习有可能在未来超过其他算法,因为深度学习的过程几乎不需要用户干预,并且将深度学习模型部署在图形处理单元并结合现代数据存储方案,模型可以进行并行计算并利用与日俱增的算力。此外,当训练集包含的样本数量有限或训练数据与预期应用场景有出入时,可以使用迁移学习提高模型性能。目前针对深度学习开发的计算硬件、计算架构和新的学习算法将加速上述过程,使得相关算法得以在车辆上使用。更具体地说,以dNNe为基础的BHMUP可以在特定电池上训练,然后结合迁移学习,在不同设计的电池上依据早期衰退信息重新训练模型参数,实现对新电池的高精度预测。进一步的,在数据可用的前提下,BHUMP可以结合主动学习(Active Learning,AL)被用于采用不同设计、不同化学材料和不同工作温度的电池中。
\section{结论}
目前两种被广泛采用的用于在线电池健康状态估计的方法是基于电池等效电路模型的方法和和基于电化学模型的方法。然而,在在线应用中,要兼顾预测准确性和预测结果计算高效性并不容易。我们提出了一种新的基于机器学习流水线的方法,称为BHUMP。与传统方法相比,我们提出的机器学习流水线有诸多优势,包括其对充电协议和放电倍率的鲁棒性,以及能其在缺少对电池设计、电池电极材料和工作温度的先验知识的条件下进行预测的能力。
本文研究了四种作为BHUMP基础的算法,分别是BRR、GPR、RF和dNNe。
研究时关注这些算法的预测误差和量化预测结果不确定性的能力。实验结果表明,模型的精度(这里指的是在测试集上取得的最小误差)取决于样本对应的充电协议。对于采用恒流-恒压充电协议和两步快充协议的电池样本,RF算法取得了最低的误差,对于采用恒流充电协议的电池样本,BRR算法取得了最低误差。需要注意的是,在考虑不确定性评估指标时,RF算法很难校准,并且在预测结果上表现出了很强的乐观倾向。以平均增加0.43\%的MAPE和0.97\%的RMSPE为代价,dNNe算法的平均校准分数更高,且无论充电协议如何,都能取得第二低的误差。对于采用两步快充协议的电池,dNNe算法性能最好,实现了0.45\%的RMSPE,参照90\%的置信区间,校准得分为91.02\%。
综上,我们的工作强调了使用部分充电段作为输入,结合多种机器学习模型进行电池退化状态预测的方法。更重要地,我们强调了在实际工程应用中对预测结果进行不确定性量化的重要性。最后,我们证明了我们提出的机器学习流水线方法在计算效率和结果准确性方面的优势。我们认为,这种机器学习管道方法在未来的电池管理系统中将成为标准化应用。
% \section{方法}
\section{数据可用性声明}
数据集开放获取。具体地,第一组数据可以在 \href{https://www.nasa.gov/content/prognostics-center-of-excellence-data-set-repository}{https://www.nasa.gov/content/prognostics-center-of-excellence-data-set-repository} 和 \href{https://web.calce.umd.edu/batteries/data.htm}{https://web.calce.umd.edu/batteries/data.htm} 下载;第二组数据可以在 \href{https://data.matr.io/1/projects/5c48dd2bc625d700019f3204}{https://data.matr.io/1/projects/5c48dd2bc625d700019f3204} 下载;第三组数据可以在 \href{https://ora.ox.ac.uk/objects/uuid:03ba4b01-cfed-46d3-9b1a-7d4a7bdf6fac}{https://ora.ox.ac.uk/objects/uuid:03ba4b01-cfed-46d3-9b1a-7d4a7bdf6fac} 下载。
\section{代码可用性声明}
源代码开放获取,地址为 \href{http://doi.org/10.5281/zenodo.4390152}{http://doi.org/10.5281/zenodo.4390152} ,作者没有公开数据预处理和特征工程部分的代码。
\small
\bibliographystyle{unsrt}
\bibliography{reference.bib}
\end{document}
%\section{Some examples to get started}
%
%\subsection{How to create Sections and Subsections}
%
%Simply use the section and subsection commands, as in this example document! With Overleaf, all the formatting and numbering is handled automatically according to the template you've chosen. If you're using Rich Text mode, you can also create new section and subsections via the buttons in the editor toolbar.
%
%\subsection{How to include Figures}
%
%First you have to upload the image file from your computer using the upload link in the file-tree menu. Then use the includegraphics command to include it in your document. Use the figure environment and the caption command to add a number and a caption to your figure. See the code for Figure \ref{fig:frog} in this section for an example.
%
%Note that your figure will automatically be placed in the most appropriate place for it, given the surrounding text and taking into account other figures or tables that may be close by. You can find out more about adding images to your documents in this help article on \href{https://www.overleaf.com/learn/how-to/Including_images_on_Overleaf}{including images on Overleaf}.
%
%\begin{figure}
%\centering
%\includegraphics[width=0.3\textwidth]{frog.jpg}
%\caption{\label{fig:frog}This frog was uploaded via the file-tree menu.}
%\end{figure}
%\subsection{How to add Tables}
%
%Use the table and tabular environments for basic tables --- see Table~\ref{tab:widgets}, for example. For more information, please see this help article on \href{https://www.overleaf.com/learn/latex/tables}{tables}.
%
%\begin{table}
%\centering
%\begin{tabular}{l|r}
%Item & Quantity \\\hline
%Widgets & 42 \\
%Gadgets & 13
%\end{tabular}
%\caption{\label{tab:widgets}An example table.}
%\end{table}
%
%\subsection{How to add Comments and Track Changes}
%
%Comments can be added to your project by highlighting some text and clicking ``Add comment'' in the top right of the editor pane. To view existing comments, click on the Review menu in the toolbar above. To reply to a comment, click on the Reply button in the lower right corner of the comment. You can close the Review pane by clicking its name on the toolbar when you're done reviewing for the time being.
%
%Track changes are available on all our \href{https://www.overleaf.com/user/subscription/plans}{premium plans}, and can be toggled on or off using the option at the top of the Review pane. Track changes allow you to keep track of every change made to the document, along with the person making the change.
%
%\subsection{How to add Lists}
%
%You can make lists with automatic numbering \dots
%
%\begin{enumerate}
%\item Like this,
%\item and like this.
%\end{enumerate}
%\dots or bullet points \dots
%\begin{itemize}
%\item Like this,
%\item and like this.
%\end{itemize}
%
%\subsection{How to write Mathematics}
%
%\LaTeX{} is great at typesetting mathematics. Let $X_1, X_2, \ldots, X_n$ be a sequence of independent and identically distributed random variables with $\text{E}[X_i] = \mu$ and $\text{Var}[X_i] = \sigma^2 < \infty$, and let
%\[S_n = \frac{X_1 + X_2 + \cdots + X_n}{n}
% = \frac{1}{n}\sum_{i}^{n} X_i\]
%denote their mean. Then as $n$ approaches infinity, the random variables $\sqrt{n}(S_n - \mu)$ converge in distribution to a normal $\mathcal{N}(0, \sigma^2)$.
%
%
%\subsection{How to change the margins and paper size}
%
%Usually the template you're using will have the page margins and paper size set correctly for that use-case. For example, if you're using a journal article template provided by the journal publisher, that template will be formatted according to their requirements. In these cases, it's best not to alter the margins directly.
%
%If however you're using a more general template, such as this one, and would like to alter the margins, a common way to do so is via the geometry package. You can find the geometry package loaded in the preamble at the top of this example file, and if you'd like to learn more about how to adjust the settings, please visit this help article on \href{https://www.overleaf.com/learn/latex/page_size_and_margins}{page size and margins}.
%
%\subsection{How to change the document language and spell check settings}
%
%Overleaf supports many different languages, including multiple different languages within one document.
%
%To configure the document language, simply edit the option provided to the babel package in the preamble at the top of this example project. To learn more about the different options, please visit this help article on \href{https://www.overleaf.com/learn/latex/International_language_support}{international language support}.
%
%To change the spell check language, simply open the Overleaf menu at the top left of the editor window, scroll down to the spell check setting, and adjust accordingly.
%
%\subsection{How to add Citations and a References List}
%
%You can simply upload a \verb|.bib| file containing your BibTeX entries, created with a tool such as JabRef. You can then cite entries from it, like this: \cite{greenwade93}. Just remember to specify a bibliography style, as well as the filename of the \verb|.bib|. You can find a \href{https://www.overleaf.com/help/97-how-to-include-a-bibliography-using-bibtex}{video tutorial here} to learn more about BibTeX.
%
%If you have an \href{https://www.overleaf.com/user/subscription/plans}{upgraded account}, you can also import your Mendeley or Zotero library directly as a \verb|.bib| file, via the upload menu in the file-tree.
%
%\subsection{Good luck!}
%
%We hope you find Overleaf useful, and do take a look at our \href{https://www.overleaf.com/learn}{help library} for more tutorials and user guides! Please also let us know if you have any feedback using the Contact Us link at the bottom of the Overleaf menu --- or use the contact form at \url{https://www.overleaf.com/contact}.
%