范金骥
(大唐华东电力试验研究所,合肥 230000)
随着居民用电负荷比重的增大,电网日负荷率下降、电网负荷的不稳定和峰谷差增大,电网公司需要提供更多的辅助服务。掌握电网日负荷峰谷差与最高负荷的信息对于调峰容量的合理安排,提升系统运行控制与计划工作水平具有重要价值。
预测模型的研究方法依据复杂程度、灵活性及数据要求的不同,而有各自的特点和适用条件,诸如统计分析类、机器学习类等预测方法[1]。单一预测方法在进行具体的工程应用时都会存在缺陷,将适用于负荷预测的单个模型进行适当的组合是解决负荷预测的一种新思路。时间序列模型利于处理随机的实际量,在负荷预测中被广泛使用[2],其核心突出了时间因素在预测中的作用,暂不考虑外界具体因素的影响,无法将天气情况等重要影响因素反应到负荷预测中。神经网络算法用于预测时则具有较强的处理外界影响因素的特点,且具有自学习与高速寻优的特点。建立非线性模型时神经网络具有较强的非线性映射能力[3],但难以处理负荷的随机扰动。预测模型不同,所需的数据资料和计算过程也不相同,在实际计算时还存在条件的假设与等效处理,单一模型在计算时无法将采集数据信息中的全部特征解析完全。因此,想把数据中的全部信息要素得到展现,组合预测方法可以弥补单一预测方法的缺陷,具有更强的适应能力,可以改善预测结果。
负荷预测是一个复杂的过程,进行预测时可以将近期负荷数据与远期负荷数据相结合,以综合不同特征的负荷数据信息。预测某一日负荷时,既考虑紧邻日造成的影响,同时考虑连续前多日负荷的影响。对这些实际样本值,采用预测方法分别计算预测值,然后利用纵横交叉算法加权计算交叉预测值。针对上述分析提出了对纵向连续负荷数据和横向断续数据分别建模的交叉预测法,以尽可能多的获取重要的预测信息、提高预测精度。加入最优权重的计算使得预测效果得到提升。利用该方法结合某省网系统数日负荷进行了日负荷的预测,通过与单一预测方法及普通组合结果的比较,证明该模型具有较好实用性和预测效果。
ARMA(自回归滑动平均)模型可用来描述非平稳的随机负荷过程,并通过相应的差分处理可将序列转化为平衡过程来研究,而任一平衡随机过程都可以用满足平衡和可逆性条件下的ARMA(p,q)模型来描述[4]。ARMA模型预测流程如图1所示。
图1 ARMA模型预测流程
ARMA模型是研究时间序列的重要方法[5]。AR(自回归)模型的回归方程为:
式中: yt, yt-1, yt-2, …, yt-p为时间有关的序列; εt为一个随机干扰项;φ1,φ2,…,φp为偏相关系数。MA(滑动平均)模型的方程为:
式中:q为模型的阶数;φ1,φ2, …,φq为方程的待定系数;εt, εt-1, εt-2, …, εt-q为误差; yt为平稳的时间序列。
由上述2个模型构成的ARMA模型数学公式为:
当式(3)中φ和φ没有公共因子时,即为电力系统负荷预测时使用的ARMA(p,q)模型。模型中用MATLAB确定ARMA模型的阶数,要对差分后的序列进行拟合和预测,求出最好的阶数。经过多次试验后最终确定最为合理的模型参数。
模型建立前先判断数据的特性,对于不平稳的数据信息需要差分处理,转换为模型可用的值,接下来进行ARMA建模与预测[6]。通常步骤如下:
式中:N为总数;k为样本数;i为其中第i个样本。
(2)模型辨识和参数估计。
(3)模型适用性检验。
随机变量 X(t)(t=1,2,3,…),如果是由一个不相关的随机变量的序列构成的,当2个变量之间的协方均为零,则称其为纯随机过程。E[(X-E(X))(Y-E(Y))]称为随机变量 X 和 Y 的协方差。在实际负荷预测计算时需对生成的模型进行可行性检验,当实际观测到的样本序列值与经过模型识别和参数估计得到的随机模型计算出的估计值之差构成的残差序列是白噪声的1个样本序列时,证明该模型的适用性合格。
(4)预测模型用于预报。
依据经过检验的时间序列模型通过数据分析软件计算电网负荷的预测值。
ANN(人工神经网络)是进行负荷预测的又一重要方法[8]。神经网络技术易于处理各种影响负荷变化的因素,以下使用三层前向神经网络来构造神经网络模型。神经网络的结构设计与训练算法是预测效果的关键环节,BP神经元的结构模型与普通的神经元模型类似,但是BP网络的激活函数要求是可微的,所以不能使用二值函数,常用S型的对数、正切函数或者线性函数[9-11]。其结构图如图2所示。
图2 BP网络结构示意
BP神经网络预测模型的算法流程图如图3所示。
在计算流程中有:
式中:n为输入层的个数;q为隐藏层的个数;m为输出层的个数;vki为输入层与隐藏层之间的权值;wjk为隐藏层与输出层的权值;f1(·)为隐藏层的输出函数;f2(·)为输出层的激活函数;zk为隐藏层节点的输出;oj为输出层的节点输出。其中n,q,m分别根据具体实例而定。
当训练样本总数为m时,用x1,x2,…,xm来表示,第p个样本输入所得到的实际输出和理想输出分别为和j=1, 2, …, m), 样本误差为:
图3 B-P算法流程
p个样本的总误差为:
权值的修正公式为:
根据上述步骤和公式进行计算,当误差满足要求后则停止计算输出结果。
进行电网日负荷预测时数据通常以15 min进行采样,表现为96点负荷值。为便于观察,神经网络模型的输入变量选取预测日前1日的24组整点负荷值。因此,输入变量是1个24维的向量。目标向量就是预测日当天的24组整点负荷值,输出变量即为1个24维的向量。得到输入和输出结果后进行归一化处理,将其变为区间[0,1]之间的数值,公式为:式中:x为处理前数值;y为处理后数值;其中,xmax,xmin分别为该项数据的最大值和最小值。
根据Kolmogorov定理,网络中间层的处理单元可取49个。网络训练采用B-P算法。B-P算法概括为反复进行前向计算、反向计算和修正权值。
CSO(交叉预测法)是根据儒家的中庸思想创立的全新优化算法,每个单一预测模型的值为1个数值矩阵,将不同矩阵中的值分别进行横向和纵向的交叉后得到1个中庸解即MShc,MSvc中庸解进入竞争算子的计算后得到更优的解为占优解DShc,DSvc[12-14]。利用此方法进行组合预测模型的权重的计算可以克服在单个模型寻优时出现的局部收敛的问题,得到更稳定和精确的预测值。
横向交叉为在不同预测模型的所有维之间进行算数交叉,假设交叉发生在解 X(i)和 X(j)的第l维之间,则交叉公式为:
式中: i, j∈N(1, M), l∈N(1, L), r1, r2∈[0, 1]之间的随机数;c1,c2∈[-1,1]之间的随机数;M为粒子规模; L 为变量维数; X(i, l), X(j, l)表示父代粒子 X(i)和 X(j)的第 l维; Mhc(i, l), Mhc(j, l)表示 X(i, l)和 X(j, l)通过横向交叉产生的第l维子代。
横向交叉进行完后,将得到的子代与父代通过竞争算法进行比较,较优的个体继续保留下来进行后续的计算。在横向交叉计算时采用较大的r1,r2和较小的c1,c2利于计算,比遗传算法的全局搜索能力强。具体数值需根据仿真试验获得。
纵向交叉是为了消除寻优过程中的局部收敛的问题,通过归一化的处理后进行不同维数之间的交叉计算。当寻优过程中出现局部最优时,利用算法中的变异概率可以使得这一组解重新获值,其中的一维发生了变化而解的其他维不变。
假设l1,l2是一个解中不同的维,则进行纵向交叉计算的公式为:
式中: i∈N(1, M); l1, l2∈N(1, L); r∈[0, 1];MSvc=(i, l1)为纵向交叉后的新子代。
在实际计算时,通常会出现一个解中的维局部最优无法继续向前计算,成为维局部最优。为了解决这一问题,CSO算法加入了纵向交叉计算,使得不同维之间通过交叉概率p进行操作,p的选取与不同的优化模型和具体问题有关,经过试验验证当p取(0.2~0.8)时,对电网负荷预测具有较好的计算效果,既能使得陷入局部最优的维跳出计算,又让解具有更好的多样性。新的子代通过与父代个体的比较,留下的较优解为。
此处的组合由横向ARMA和纵向的ANN两个模型组成,所以在进行计算时需要确定两者的权系数。不同的权系数对预测结果的影响较大,进行完单个模型的预测计算后,利用CSO组合预测发进行最终的计算,其计算步骤如图4所示。
图4 交叉预测流程
(1)获取电网负荷的历史数据并进行处理。
(2)依据数据分别进行横向ARMA预测和纵向ANN预测。
(3)进行组合预测的参数设置,如:设置种群大小M,最大计算代数N,纵向交叉概率p。
(4)按照上述公式进行横向交叉和纵向交叉操作后进行竞争计算。
(5)当达到最大计算代数后,整个算法结束,不然继续未到步骤(4)进行计算。
在计算过程中各单项模型预测结果可表示成矩阵P。假设预测时长为T,则:
式中:pmt表示第m种方法第t时刻的预测值;αt表示第t时刻所有预测法预测值。
预测时对应的权系数矩阵为W:
式中:wmt为第m种方法第t时刻的权重系数;为第t时刻所有预测方法的权重系数。则权重系数应该满足:
总体优化后的目标函数为:
式中:wij为时刻t模型j的权重系数;t为预测的时间总数;m为预测模型的个数;yij为时刻t模型j的预测值;为时刻i的实际负荷值。
时间序列模型建立在,随机过程理论基础上,易于处理连续数据序列的随机特征;而神经网络技术具有很强的自学习和复杂非线性拟合能力,善于挖掘近期数据规律。结合二者的优点,在此提出采用时间序列模型处理连续纵向负荷数据,及神经网络技术处理断续横向负荷数据,对算法获得的单项预测值进行纵横交叉计算获得最终的负荷预测值[15-17]。
以某网2012年6月4日到2012年6月21日(仅考虑工作日)的24点电力负荷值作为交叉预测模型的输入样本,预测2012年6月22日的整点电力负荷。具体的计算参数设置如下:
(1)ANN预测模型的网络隐含层的神经元函数采用S型正切函数,输出层神经元传递函数采用S型对数函数,设定网络的训练函数为trainlm,采用Levenberg-Marquardt算法进行网络学习。
(2)计算中的训练次数为1 000,训练目标为0.02,学习速率为0.1。
(3)依据ARMA模型与ANN模型对样本数据在24点的实际预测效果,通过交叉预测模型来确定其权重,经过不同的试验选出效果较好的参数为:种群大小为M=30,纵向交叉概率p=0.55,最大计算代数max=100。
应用建立的交叉预测模型对省网系统负荷进行预测,组合交叉预测与横向ARMA预测、纵向ANN预测结果见图5。
图5 负荷预测效果
从图5中可看到,横向ARMA预测值与实际值误差较大,这主要是由于预测所依据的历史负荷数据较短,时间序列发展规律的发现不够准确,以更长时间段内的时间序列数据作为依据将有利于提高横向预测效果。纵向ANN预测值能够对多数整点负荷做出较好的预测,在个别点的预测效果较差,这主要是由于受限于网络训练样本较少,在避免过拟合的前提下适当增加训练样本数目及增加每天的测量点(如以96点进行预测)都将有利于提高纵向预测效果。
组合交叉预测的效果与横向预测及纵向预测紧密关联,从图5中可看到,交叉预测值更接近实际值。利用相对误差进行性能评价,进一步验证了交叉预测方法能够获得更高的预测精度。表1反映了3种预测结果的相对误差。可以看出,在大部分负荷点交叉预测结果的相对误差普遍较小,比横向预测减小了1.438%,比纵向预测仅减少了0.001 4%。3种方法普遍存在用电量由较少过渡到较大时会造成相对误差的大幅增加,说明其预测精度仍存在可提高空间。表2为3种预测模型的预测准确度比较,是对日负荷24点预测效果的综合评定。从表2中可看出,组合交叉预测方法由于兼顾了不同特征负荷数据对预测的影响,将单个预测模型取长补短,从而获得了更好的预测精度,交叉预测比横向预测提升了1.34%,比纵向预测提升了0.04。结合机组数据的对比发现,由于依据的历史负荷数据较短,导致交叉预测的结果相对于纵向预测提升不大,
表1 电网日负荷预测结果相对误差比较
表2 电网日负荷预测准确度比较
为了更好的观察提出的组合交叉预测方法的效果,引入了AVG(平均综合准确率)和Mape(平均绝对百分比)的概念进行数据的分析。文中还将计算结果与等权重系数、误差绝对值方法计算出的负荷预测模型进行了比较。各组合预测模型如图6与表3所示。
图6 不同权系数组合负荷预测结果
表3 电网日负荷组合预测误差对比
由图6可知使用纵横交叉方法算得的权系数,根据不同的单个模型和预测点的情况确定其权系数矩阵。实验表明,纵横交叉组合优化模型预测的误差明显比误差绝对值组合方法和等权重组合方法的误差小,由表3可知,使用交叉预测的方法比等权重预测及误差绝对值预测具有更高的平均综合准确率及更低的平均绝对百分比,说明纵横交叉组合预测模型对电力系统的短期负荷预测是可行的,可以更好为电网日负荷预报中提供良好的依据。
此处提出了一种基于纵横交叉预测的电网日负荷预测方法,该方法根据不同的电网负荷数据特点来确定在计算时需要使用的单个负荷预测模型,提供了组合预测的计算方法。计算时既考虑紧临日负荷的影响,又考虑连续前多日负荷的影响,对这些实际样本值,采用预测方法分别计算预测值,然后利用纵横交叉算法加权计算交叉预测值,尽可能多的获取重要的预测信息、提高预测稳定性和精度。
实验结果表明利用该方法进行电网日负荷预测时,电网日负荷预测整体误差横向预测减小了1.438%;预测准确度比横向预测提升了1.34%,比纵向预测提升了0.04%。同常规的组合权重分配相比,其平均综合准确率提升了近1%,平均绝对百分比降低了1%。交叉预测技术有效的结合了横向预测与纵向预测的优势,在各个时段均显示出良好的预测效果,并且具有较高的预测准确度,为交叉预报技术在电网日负荷预报中的应用提供参考。但在进行计算时未考虑到新能源的出力、气象变化、负荷分类等影响因子,在以后的研究计算中还应结合这些影响因子进行进一步的研究[18-21]。