徐嘉杰, 卢兆军, 袁飞, 陈光宇
(1.南京工程学院 电力工程学院,江苏 南京 211167;2.国网山东省电力公司,山东 济南 250001;3.国网山东省电力公司泰安供电公司,山东 泰安 271000)
随着电力市场的逐步完善和用户需求侧管理(demand side management, DSM)机制的发展[1],电力系统负荷分类识别已经成为一项十分重要的基础性工作。负荷预测、负荷定价和负荷建模等工作都需要对负荷类型有一个科学准确的分类[2]。因此,深入研究电力系统负荷分类的方法及应用,有利于及时掌握用电负荷的变化规律和发展趋势,有利于用电负荷的科学管理,还有利于计划用电工作的开展,具有重要的理论意义和现实意义。
现有的负荷分类识别方法,在分类结果和用户负荷特性的考虑等方面存在一些缺陷。一是供电部门对于电力系统用户负荷分类主要依据是用户负荷所属的行业以及用户的经济活动特点,没有考虑到随着电网的发展,用户负荷可能出现新类型,与传统负荷分类方法存在明显的差异;二是传统的负荷预测方法,没有充分考虑用户负荷的实际特性和变化规律,存在着较大的人为因素,降低了分类结果的准确性和合理性。
综上,本文针对现有研究的不足,提出了一种基于深度神经网络(deep neural networks, DNN)和SoftMax分类器的台区负荷分类识别方法,结合已有的典型负荷曲线特征库,实现对台区未知用户的负荷预测,为电网部门需求侧管理提供可靠的支撑。通过对某台区1 200个用户负荷数据进行实证分析,结果表明本文提出的分类方法在算法收敛性、计算时间以及预测精度等方面具有更好的性能。
DNN是一个有多层结构的数学模型,按层的位置不同可以分为:输入层、隐藏层和输出层。第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。层与层之间是全连接的,即第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。这样的结构使得DNN能够学习输入与输出之间的隐藏特征,可以具有较强的表达能力[3]。而且,输出层神经元可以不止一个,可以有多个输出,这样模型可以灵活地应用于分类、回归、降维和聚类等。DNN结构示意图如图1所示。
图1 DNN结构示意图
设DNN输入数据的特征向量为X=(x1,x2,…,xn)T,每个隐藏层有多个神经元构成,神经元结构如图2所示。
图2 神经元结构示意图
Relu(xi)=max(xi,0)
(1)
式中:xi为每一隐藏层的输入参数。
由式(1)可知,Relu函数的导数在正数部分是恒等于1的,因此在深层网络中使用Relu激活函数就不会导致梯度消失和爆炸的问题[4]。
DNN的训练目的是调整ω和b,使得损失函数最小。本文使用均方误差函数MSE作为模型的损失函数,其公式如式(2)所示。
(2)
SoftMax回归模型是逻辑回归模型在多分类问题上的扩展,将逻辑回归一般化[5]。对于多分类问题的求解,常用的方法有对数几率回归(logistic regression, LR)、支持向量机(support vector machine, SVM)和SoftMax多分类器。
图3 SoftMax分类器示意图
(3)
式中:yi为SoftMax层的输出概率值;xi为SoftMax层的输入值;n为SoftMax层的输入值个数。
台区配电网络比较复杂,涉及的电气参数因素较多,鉴于从用户信息采集系统中提取的用电数据十分庞大,仅采用人工判断的方法难以进行负荷特性的计算与分析[6]。本文提出的基于DNN和SoftMax分类器的台区负荷识别流程如图4所示。首先,对台区负荷数据进行预处理并作为模型输入;其次,构建基于DNN和Softmax多分类器的多层网格结构模型;最后,结合台区已有的典型负荷曲线特征库,预测未知用户所属类别,从而实现台区负荷的智能识别。
图4 基于DNN和Softmax分类器的台区负荷识别流程图
在Google公司深度学习开源框架Tensor-flow上进行测试试验,并调用开源的基于Python的机器学习工具包scikit-learn,试验所用机器包括CPU:Intel(R) Core(TM) i7-8565U 1.8 GHz,内存8 G,软件为Python3.7。试验数据采取2019年1月1日—7月7日某台区1 200个用户的日负荷数据,验证所提方法,其中台区容量为400 MVA,电流互感器变比(CT ratio)为1,电压互感器变比(PT ratio)为1。由于用户负荷所属台区的性质相同,故只需分析用户自身的负荷特性。为了克服模型建立过程中带来的不必要误差,实现数据格式的统一化和规范化,需对台区用户负荷数据进行缺失值的填补和归一化。
DNN通过加入不同的层可以解决不同领域的问题。本文所提出的问题为负荷预测识别,因而采用全连接层的配置。经过多次试验,选择如下的网络结构:输入层+三隐藏层+SoftMax层+输出层。全连接层的网络节点配置表见表1。
表1 网络节点配置
由表1可知,在激活函数上,为了防止梯度消失和梯度爆炸,通常采用Relu函数。网络结构的设置对于模型预测的准确度具有重要影响,结构过少会发生欠拟合,结构过多则会发生过拟合。
损失函数取最小值时所对应的参数值即所需求解的模型参数的最优值,然而参数寻优的过程通常存在局部最优解和全局最优解两种最优情况。本文的模型实现过程,选择使用随机梯度下降方法,并使用反向传播算法实现多层前馈神经网络的误差反向传播[7]。模型训练过程中测试集与训练集损失值下降图如图5所示。横坐标为训练迭代次数,纵坐标为均方误差MSE。
图5 模型训练过程中测试集与训练集损失值下降图
模型对75个未知用户负荷的预测如图6所示,图中横坐标为用户样本编号,纵坐标为用户负荷数据。经计算分析可知预测均方误差为0.509 6,满足一定的预测精度要求。
图6 模型对75个未知用户的预测图
相比于传统的BP神经网络模型,DNN具有更多的层次结果,拟合实际问题的能力更强。本文进行了RNN与传统机器算法SVM模型、BP神经网络的比较,并将针对少量用户负荷预测结果进行可视化展示,如图7所示。
图7 SVM、BP神经网络与DNN预测对比图
图7为SVM、BP神经网络与DNN预测对比图,图中横坐标为用户样本编号,纵坐标为用户负荷数据,不同模型均方误差如表2所示。
表2 不同模型的均方误差
综合图7和表2可知:在三种模型中,DNN模型预测精度最好,验证了使用DNN模型作为台区用户负荷预测模型是最合理的。本文所提算法在面对多维数据时具有明显的效率优势。BP作为机器学习中运用最广泛的回归算法,计算效率和速率优于SVM和Softmax分类器,在面对大数据时尤其明显;但是随着输出维度的增加,仅仅使用单个分类器或者SVM是不够的,需要利用多个二分类器来组成多分类器。虽然满足损失函数收敛很小的值,但是运行时间大大增加,并占用了较多的内存空间。而本文所提算法在面对分类识别问题时,在保证模型稳定性的同时满足了较高的预测精度。
本文提出了一种基于DNN和SoftMax分类器的台区负荷分类识别方法。首先,构建包含SoftMax分类器的DNN多层网络结构;其次,将具体时间维度上负荷数据作为输入进行训练,获得了相应的台区用户的负荷预测模型;最后结合已有的典型负荷曲线特征库,验证模型的预测精度。通过实际台区用户数据仿真结果表明,本文提出基于DNN和SoftMax分类器的方法在台区负荷分类模型的预测精度等方面具有更好的性能。