一种用于预测充电桩系统充电量的方法
技术领域
本发明属于充电汽车充电桩领域,具体涉及一种用于预测充电桩系统充电 量的方法。
背景技术
充电桩系统充电量数据具有周期性、时间序列性和趋势性。现阶段,对充 电量数据预测的方法主要是基于其周期性:基于周期性的历史平均值预测。
基于周期性的历史平均值预测,取历史同一时刻充电量的平均值作为预测 值。比如要预测今天12点的充电量,则取前一周或一个月每天12点的充电量的 平均值作为预测值。历史平均值能够较好的利用数据周期性的特点进行预测, 预测结果相对较好,但是预测结果具有滞后性。当短期有特殊事件发生时,比 如,充电优惠活动,短期内充电量大幅增加,历史平均值很难捕捉这种变化, 预测效果在这种情况下非常差。而且,历史平均值无法预测未来长时间的充电 量。
神经网络最开始是受生物神经系统的启发,为了模拟生物神经系统而出现 的,由大量的节点(或称神经元)之间相互联接构成。神经网络根据输入的变 化,对权值进行调整,改善系统的行为,自动学习到一个能够解决问题的模型。 LSTM(长短记忆网络)是RNN(循环神经网络)的一种特殊形式,有效地解决多层 神经网络训练的梯度消失和梯度爆炸问题,能够处理长时时间依赖序列。LSTM 能够捕获充电量数据的时间序列特性,使用LSTM模型能够有效提高预测精度。
LSTM网络由LSTM单元组成,LSTM单元由单元,输入门,输出门和遗忘 门组成。
遗忘门:决定从上一个单元的输出状态中丢弃多少信息,公式如下:
ft=σg(Wfxt+Ufht-1+bf)
其中,ft是遗忘门的输出,xt是输入序列,ht-1是上一个单元的输出,σg表 示sigmoid函数,Wf表示输入的权重参数矩阵,Uf表示上一个单元输出的权重参 数矩阵,bf表示偏差参数向量。
输入门:决定让多少新的信息加入到Cell状态中,并对单元状态C进行更新, 公式如下:
it=σg(Wixt+Uiht-1+bi)
其中,ct表示当前单元的单元状态,σg和σc表示sigmoid函数,°表示矩阵乘 积,Wi表示输入的权重参数矩阵,Ui表示上一个单元输出的权重参数矩阵,bi表 示偏差参数向量,ft是遗忘门的输出,ct-1是上一个单元的单元状态,°表示矩 阵乘积,Wc表示输入的权重参数矩阵,Uc表示上一个单元输出的权重参数矩阵, bc表示偏差参数向量。
输出门:基于当前的单元状态输出结果。
ot=σg(Woxt+Uoht-1+bo)
其中,ht表示当前单元的输出,σg和σh表示sigmoid函数,°表示矩阵乘积, Wo表示输入的权重参数矩阵,Uo表示上一个单元输出的权重参数矩阵,bo表示 偏差参数向量。
发明内容
本发明提出了一种用于预测充电桩系统充电量的算法,是基于周期性、时 间序列性、趋势性以及空间性的深度学习预测方法,目的在于提高充电系统总 充电量、单个充电桩群的充电量的预测精度,并且提供一种对未来长时间充电 量的预测方法。
本发明的技术方案:
一种用于预测充电桩系统充电量的方法,步骤如下:
第一步,将充电量数据进行预处理
(1)时间粒度划分:将所有充电量数据按一小时的时间粒度处理为每小时 的充电量数据;
(2)对数据进行标准化:采用最小值最大值对每小时的充电量数据进行标 准化,公式如下:
其中,x表示充电量原始值,xmin表示充电量原始值的最小值,xmax表示充 电量原始值的最大值,max为归一化的上限值,min为归一化的下限值, [min,max]表示归一化后的区间,x*为标准化后的结果。
第二步,将预处理后的充电量数据划分为训练集、验证集和测试集。在每 个数据集中,不同模型采用的数据有以下几种类型:
时间序列深度学习模型中采用时间序列数据:
周期性深度学习模型中采用周期序列数据:
趋势性深度学习模型中采用趋势序列数据:
外部特征模型中采用外部特征数据:Fn;
其中,n表示当前时刻,t表示时间序列的步长,p表示周期序列的步长,q 表示趋势序列的步长。si表示在第n时刻的充电量,表示第n时刻的前i天的日 内相同时刻的充电量,表示前i周的某天的第n时刻的充电量。表示包括第n 时刻的前t个时刻的充电量集合,表示包括第n时刻当天的前p天日内相同时刻 的充电量集合,表示包括第n时刻当前周的前q周的某天日内相同时刻的充电 量集合,Fn表示在第n时刻的外部特征,包括节假日、位置区域、天气和气温。
第三步、构建预测模型,预测模型包括周期性深度学习模型、时间序列深 度学习模型、趋势性深度学习模型和外部特征模型,各个模型的结构及训练机 制如下:
(1)周期性深度学习模型:是一个基于注意力Attention机制的多层长短记 忆网络LSTM模型,隐含层包含两层长短记忆网络LSTM的编码器Encoder、两层 长短记忆网络LSTM的解码器Decoder和三层全连接神经网络,解码器Decoder的 结构与编码器Encoder相同。
周期性深度学习模型的实现细节:将周期序列数据输入编码器Encoder, 取编码器Encoder的所有输出,并给所有输出分配不同的权重,再作为解码器 Decoder的输入,解码器Decoder的所有输出最后输入到三层全连接神经网络,三 层全连接神经网络的输出为周期性深度学习模型的输出。
(2)时间序列深度学习模型:是一个基于新的编码器-解码器 (Encoder-Decoder)机制的多层长短记忆网络LSTM模型,包含预训练部分和预 测部分。预训练部分包括两层长短记忆网络LSTM的编码器Encoder、两层长短 记忆网络LSTM的解码器Decoder和一层全连接层神经网络,预测部分包括预训 练部分的两层长短记忆网络LSTM的编码器Encoder和三层全连接神经网络。
预训练部分的实现细节:将时间序列数据输入编码器Encoder,编码器 Encoder的最后一个单元的单元状态作为解码器Decoder的第一个单元的初始单 元状态,解码器Decoder的所有输出输入到一层全连接层神经网络,得到的输出 即使预训练的输出。
预测部分的实现细节:将时间序列数据输入编码器Encoder,编码器 Encoder的最后一个单元的输出再输入到三层全连接神经网络,三层全连接层神 经网络的输出即为预测部分的输出结果,也是时间序列深度学习模型的输出。
(3)趋势性深度学习模型的结构组成及实现细节与周期性深度学习模型完全 相同。
(4)外部特征模型:包括三层全连接神经网络;实现细节:取周期性深度学 习模型、时间序列深度学习模型和趋势性深度学习模型的输出,以及外部特征 数据Fn组合成一个一维向量,将该一维向量作为三层全连接神经网络输入,经 过三层全连接神经网络,最终输出预测结果。
步骤四、使用训练集数据对时间序列深度学习模型的预训练部分进行预训 练,提前优化时间序列深度学习模型的参数,避免在整体训练时将参数优化到 局部最优点;
用零状态初始化编码器Encoder的第一个单元的单元状态,将输入数据即前t1小时的充电量输入到编码器Encoder,获得编码器Encoder的输出;取编码 器Encoder最后一个单元的单元状态作为解码器Decoder的第一个单元的初始单 元状态,再将时间序列数据即前t′1小时的充电量输入到解码器Decoder,获 得解码器Decoder的所有输出,再使用一层全连接神经网络对Decoder的所有输出 进行计算最终得到预测值;充电量真值为计算预测值和充电量真值的损 失函数值,当预训练部分的损失函数值降低至0.05以下时停止预训练;
步骤五、使用训练集数据和验证集数据对步骤三建立的4种模型进行整体训 练
将输入数据输入到4种模型中,同时对4种模型进行整体训练,外部特征模 型所输出的结果就是最终的预测值。计算每次训练后的预测值和充电量真值的 损失函数值,最小化损失函数值,将模型的参数训练到目标值。根据模型在训 练集、验证集上的效果,不断调试模型的超参数,在减小过拟合的条件下提高 预测精度。
所述的输入数据包括:时间序列数据(前t1小时的充电量)、周期序列 数据(前t2天同一时刻的充电量)、趋势序列数据(前t3周每周某天同一 时刻的充电量)、外部特征数据Fn(第n时刻的节假日、区域、天气和气温外部 特征数据)和充电量真值为(下一个时刻的充电量值)。
步骤六,使用测试集数据并利用步骤五训练好的模型进行短时预测。
输入数据为:时间序列数据周期序列数据趋势序列数据外 部特征数据Fn和充电量真值为
外部特征模型所输出的结果就是最终的短时预测值。
步骤七,使用测试集数据并利用步骤五训练好的模型进行长时预测。
输入数据为:时间序列数据周期序列数据趋势序列数据外 部特征数据Fn;
经过一次预测后,得到下一个时刻的充电量sn+1,将预测值sn+1做为真实值 放入输入数据中,重新构造输入数据:时间序列数据周期序列数据趋势序列数据外部特征数据Fn+1,再将输入数据输入到模型中,预测得到 下一个时刻的充电量sn+2。
将预测值sn+2做为真实值放入输入数据中,重新构造输入数据,如此反复, 直到得到目标时间区间的预测值。
所述的权重计算方法:设编码器Encoder的输出状态h=<h1,h2,h3,……, ht>,hi是编码器Encoder第i个单元的输出,t是编码器Encoder的步长;解码器 Decoder的输出状态是h′=<h′1,h′2,h′3,……,h′p>,h′i是解码器Decoder第i 个单元的输出,p是解码器Decoder的步长。
第一步,融合Encoder输出和Decoder状态输出。
eij=f(hi,h′j)
f是两层全连接神经网络。
第二步,计算每一个hi的权重。
使用Softmax处理后,所有的权重和为1。
本发明的有益效果:本发明与已有方法的区别在于,首先不仅利用充电量 数据的周期性特点,还利用充电量数据的时间序列性特点和趋势性特点,大幅 提高了对数据的利用和预测精度,其次考虑到外部特征节假日、充电桩所在区 域对充电量的影响,将其加入到预测模型中,大幅提高了预测精度和对特殊值 的预测。本发明的方法不仅大幅提高短时充电量预测的准确度,而且能够在较 高的准确度下预测长时充电量。
附图说明
图1是本发明设计的新的Encoder-Decoder机制结构图。
图2是本发明设计的预测模型结构图。
图3是目标时间区间为5天的短时预测结果与真实值的对比图。
图4是目标时间区间为5天的长时预测结果与真实值的对比图。
具体实施方法
下面将结合具体实施例和附图对本发明的技术方案进行进一步的说明。
一种用于预测充电桩系统充电量的方法,步骤如下:
第一步,将充电量数据进行预处理
(1)时间粒度划分:将所有充电量数据按一小时的时间粒度处理为每小时 的充电量数据;
(2)对数据进行标准化:采用最小值最大值对每小时的充电量数据进行标 准化,公式如下:
其中,x表示充电量原始值,xmin表示充电量原始值的最小值,xmax表示充 电量原始值的最大值,max为归一化的上限值,min为归一化的下限值, [min,max]表示归一化后的区间,x*为标准化后的结果。
第二步,将预处理后的充电量数据划按8:1:1的比例分为训练集、验证集 和测试集。在每个数据集中,不同模型采用的数据有以下几种类型:
时间序列深度学习模型中采用时间序列数据:
周期性深度学习模型中采用周期序列数据:
趋势性深度学习模型中采用趋势序列数据:
外部特征模型中采用外部特征数据:Fn;
其中,n表示当前时刻,t表示时间序列的步长,p表示周期序列的步长,q 表示趋势序列的步长。si表示在第n时刻的充电量,表示第n时刻的前i天的日 内相同时刻的充电量,表示前i周的某天的第n时刻的充电量。表示包括第n 时刻的前t个时刻的充电量集合,表示包括第n时刻当天的前p天日内相同时刻 的充电量集合,表示包括第n时刻当前周的前q周的某天日内相同时刻的充电 量集合,Fn表示在第n时刻的外部特征,包括节假日、位置区域、天气和气温。
第三步、构建预测模型,预测模型包括周期性深度学习模型、时间序列深 度学习模型、趋势性深度学习模型和外部特征模型,各个模型的结构及训练机 制如下:
(1)周期性深度学习模型:是一个基于注意力Attention机制的多层长短记 忆网络LSTM模型,隐含层包含两层长短记忆网络LSTM的编码器Encoder、两层 长短记忆网络LSTM的解码器Decoder和三层全连接神经网络,解码器Decoder的 结构与编码器Encoder相同。
周期性深度学习模型的实现细节:将周期序列数据输入编码器Encoder, 取编码器Encoder的所有输出,并给所有输出分配不同的权重,再作为解码器 Decoder的输入,解码器Decoder的所有输出最后输入到三层全连接神经网络,三 层全连接神经网络的输出为周期性深度学习模型的输出。
(2)时间序列深度学习模型:是一个基于新的编码器-解码器 (Encoder-Decoder)机制的多层长短记忆网络LSTM模型,包含预训练部分和预 测部分。预训练部分包括两层长短记忆网络LSTM的编码器Encoder、两层长短 记忆网络LSTM的解码器Decoder和一层全连接层神经网络,预测部分包括预训 练部分的两层长短记忆网络LSTM的编码器Encoder和三层全连接神经网络。
预训练部分的实现细节:将时间序列数据输入编码器Encoder,编码器Encoder的最后一个单元的单元状态作为解码器Decoder的第一个单元的初始单 元状态,解码器Decoder的所有输出输入到一层全连接层神经网络,得到的输出 即使预训练的输出。
预测部分的实现细节:将时间序列数据输入编码器Encoder,编码器 Encoder的最后一个单元的输出再输入到三层全连接神经网络,三层全连接层神 经网络的输出即为预测部分的输出结果,也是时间序列深度学习模型的输出。
(3)趋势性深度学习模型的结构组成及实现细节与周期性深度学习模型完全 相同。
(4)外部特征模型:包括三层全连接神经网络;实现细节:取周期性深度学 习模型、时间序列深度学习模型和趋势性深度学习模型的输出,以及外部特征 数据Fn组合成一个一维向量,将该一维向量作为三层全连接神经网络输入,经 过三层全连接神经网络,最终输出预测结果。
步骤四、使用训练集数据对时间序列深度学习模型的预训练部分进行预训 练,提前优化时间序列深度学习模型的参数,避免在整体训练时将参数优化到 局部最优点;
用零状态初始化编码器Encoder的第一个单元的单元状态,将输入数据即前24小时的充电量输入到编码器Encoder,获得编码器Encoder的输出。取编码 器Encoder最后一个单元的单元状态作为解码器Decoder的第一个单元的初始单 元状态,再将时间序列数据即前6小时的充电量输入到解码器Decoder,获 得解码器Decoder的所有输出,再使用一层全连接神经网络对Decoder的所有输出 进行计算最终得到预测值。充电量真值为计算预测值和充电量真值的RMSE (均方根误差),使用Adam方法最小化RMSE,将模型的参数训练到合适的值。 训练的损失函数为RMSE(均方根误差),公式如下:
其中,x′i表示第i时刻的充电量真实值,xi表示第i时刻的充电量预测值,当 预训练部分的损失函数值降低至0.05以下时停止预训练。
步骤五、使用训练集数据对步骤三建立的4种模型进行整体训练
将输入数据输入到模型中,计算得到三个模型的结果,将结果与外部特征 数据结合,输入到外部特征模型,外部特征模型所输出的结果就是最终的预测 值。计算每次训练后的预测值和充电量真值的损失函数值,最小化损失函数值, 将模型的参数训练到目标值。根据模型在训练集、验证集上的效果,不断调试 模型的超参数,在减小过拟合的条件下提高预测精度。
所述的输入数据包括:时间序列数据周期序列数据趋势序列数据 外部特征数据Fn。
步骤六,使用测试集数据并利用步骤五训练好的模型进行短时预测。
输入数据为:时间数列数据周期序列数据趋势序列数据外部 特征数据Fn。
外部特征模型所输出的结果就是最终的短时预测值。
图3是5天的短时预测结果与真实值的对比图,模型预测结果与充电量真实 值的均方误差根RMSE是124.34。
步骤七,使用测试集数据并利用步骤五训练好的模型进行长时预测。
输入数据为:时间序列数据周期序列数据趋势序列数据外部 特征数据Fn;
经过一次预测后,得到下一个时刻的充电量sn+1,将预测值sn+1做为真实值 放入输入数据中,重新构造输入数据:时间序列数据周期序列数据趋势序列数据外部特征数据Fn+1,再将输入数据输入到模型中,预测得到 下一个时刻的充电量sn+2。
将预测值sn+2做为真实值放入输入数据中,重新构造输入数据,如此反复, 直到得到目标时间区间的预测值。
图4是目标时间区间为5天的长时预测结果与真实值的对比图,模型预测结 果与充电量真实值的均方误差根RMSE是200.94。