基于VMD和KELM的空调超短期负荷预测
2023-09-20朱其新刘梦园
朱其新,刘梦园
(1. 苏州科技大学机械工程学院,江苏 苏州 215009;2. 苏州科技大学建筑智慧节能江苏省重点实验室,江苏 苏州 215009;3. 苏州科技大学环境科学与工程学院,江苏 苏州 215009)
1 引言
空调系统能耗作为建筑能耗中的主要部分,约占建筑总能耗的40%-60%,其节能优化控制一直是研究的热点和难点[1]。国内外专家对降低空调能耗的方法做了大量的研究,发现空调负荷预测是一个非常重要的关注点[2,3]。准确的负荷预测模型的建立,能够使空调系统在满足负荷要求的条件下,合理安排运行策略,降低系统能耗。
文献[4,5]使用BP神经网络进行负荷预测。但标准BP神经网络存在收敛速度慢,预测效果不高的问题。文献[6,7]使用支持向量机(SVM)进行负荷预测。但支持向量机的使用具有一定的局限性,其对大规模训练样本难以实施。黄广斌等[8]提出使用极限学习机(ELM)进行网络训练,对比发现该算法训练过程简单、训练速度快、泛化能力强。文献[9]使用ELM进行负荷预测取得了较好的效果。但ELM模型随机生成输入权值和阈值,这会导致系统实际运行过程中出现不稳定的问题。使用核函数取代ELM的隐含层特征映射,可形成核极限学习机(KELM)。KELM进行模型训练学习时,只需要进行参数的合适选取,就能通过一系列矩阵运算得到网络的输出权值,这极大的提高了模型的预测精度和泛化能力[10-12]。
除了上述单一预测方法,基于信号分解的混合预测方法也受到广泛认可。这种混合预测的基本思路是把原始负荷序列当成信号序列,根据负荷局部特征和变化规律分解成几个特征互异的分量。分别建立各分量的预测模型后,将预测结果集成得到最终的预测结果。常见的信号分解技术包括小波分解(WD)和经验模态分解(EMD)。文献[13]和[14]使用WD和SVM的混合模型分别进行风电功率和电力负荷预测,结果证明该混合模型具有明显的预测性能优势。Qiu等[15]提出使用一种基于经验模态分解算法和深度学习方法(DBN)的集成方法进行电力负荷预测,发现EMD-DBN混合模型具有很好的预测效果。Guo等[16]使用经验模态分解和模糊神经网络进行风速预测,仿真证明该模型预测精度很高。但小波分解的效果依赖于小波基的选择。经验模态分解也有模态混叠和端点效应的问题。Dragomiretskiy等在2014年提出了变分模态分解(VMD)的信号分解方法,它有效克服了EMD的模态混叠现象,端点效应也相对较弱,并且可自己设定变分模态函数数目,是一种可调节尺度的信号处理方法[17]。
为提高现有空调系统负荷预测模型的精度和稳定性,本文提出了一种基于VMD和KELM的组合预测模型:首先运用VMD将负荷序列分解成一系列变分模态函数,然后使用麻雀搜索算法对KELM的参数进行优化,将优化后的KELM算法用于每个变分模态函数,得到每个模态的预测结果,最后对各模态预测结果汇总得到最终预测输出。仿真结果表明,相对于其它方法,该方法建立的负荷预测模型精度更高,能够准确的完成空调超短期负荷预测。
2 变分模态分解
VMD是一种新的信号分解方法,它能够把任意信号f解耦成k个信号模态分量uk,这些分量分别围绕在中心频率ωk周围[18]。信号模态分量的生成过程就是变分问题的求解过程,带约束的变分问题模型及其求解步骤如下
(1)
1)引入拉格朗日乘法算子λ(t)和二次惩罚项α将约束变分问题转化成非约束变分问题,增广拉格朗日表达式为
(2)
2)用交替方向乘子算法(AMDD)得到上述增广拉格朗日函数的鞍点,即最优解。步骤如下
(3)
(4)
2)利用式(5)更新λn
(5)
3)对于给定精度ε>0,判断是否满足收敛条件
(6)
满足则停止迭代,输出最终的uk和ωk,否则返回步骤2)。
3 核极限学习机
核极限学习机(KELM)是结合ELM和核函数提出的改进算法,既完全保留了ELM的原有优点,又提高了模型的预测性能和稳定性。
ELM本质是一种单隐含层前馈神经网络(SLFN)。对含有L个隐层节点的SLFN,若给定N组训练样本数据集(xj,tj),其中xj=[xj1,xj2,…,xjn]T,tj=[tj1,tj2,…,tjm]T,那么可以得到网络节点的输出为
(7)
(8)
其中,βi代表第i个隐含层节点和输出层节点之间的权值向量。写成矩阵形式为HB=T,且有
(9)
其中,B为输出权值矩阵;H为隐含层节点的输出矩阵。
不同于使用梯度下降算法训练所有网络权值的SLFN,ELM的权值训练等价于线性方程组HB=T的最小二乘解B的求解,即
‖H(ω1,…,ωL,b1,…bL)-T‖
(10)
引入正则化系数C,输出权值的最小二乘解为
(11)
故ELM的输出函数为y(x)=h(x)。
引入核函数代替ELM的特征映射函数h(x),可构建KELM模型。定义核矩阵ΩELM=HHT,其元素ΩELM(i,j)=h(xi)·h(xj)=K(xi,xj),则网络输出可表示为
(12)
4 麻雀搜索算法优化内核极限学习机
KELM性能主要依赖于选取的核函数和相关核参数。本文用RBF构建KELM模型,并将使用麻雀搜索算法找到正则化系数C和核参数γ的最优值,从而提高KELM模型的性能。
(13)
4.1 SSA建模规则
麻雀搜索算法(SSA)是2020年提出的一种新兴的元启发式群智能优化算法。该算法受启发于麻雀的快速觅食和反捕食行为,具有系统结构简单、易于设计实现,控制参数较少,局部搜索能力较强的几大优点[19]。
在麻雀搜索算法中,个体被划分为发现者、加入者和警戒者,个体位置和解一一对应。建议SSA的数学模型遵循的主要规则如下:
1)发现者主要进行丰富食物资源地的搜索,为所有加入者提供方向。一般来讲,发现者需要较高的能源储备,即在模型中发现者对应的适应度值较高。
2)发现捕食者之后麻雀会发出鸣叫,进行报警。一旦报警值高于安全域值,发现者会带着加入者到其它安全地方觅食。
3)为找到更好的食物,发现者和加入者身份可以动态变化,但总数量保持不变。
4)对加入者来说,觅食位置与个体具有的能量息息相关。部分能量低的加入者为及时获得更多的能量可能会飞到其它地方继续觅食。
5)加入者总能追踪到提供最好食物的发现者并在其周围继续觅食。为增加自己的捕食几率部分加入者可能会跟发现者争抢食物资源。
6)意识到危险时,处于边缘的个体会快速朝着安全区域移动,处于中间的个体则会随机走动,相互靠近。
4.2 SSA数学模型
为建立数学模型,使用虚拟麻雀进行食物的寻找。由n只麻雀组成的种群可表示为
(14)
式中,d表示待优化问题变量的维数。
种群适应度值可表示为如下形式
(15)
式中,f表示适应度值。
根据规则1)和规则2),发现者按照以下方式进行位置更新:若报警值R2低于安全域值ST,说明觅食环境附近没有捕食者,此时发现者可以广泛搜索食物;反之,说明出现捕食者,此时发现者会飞到其它安全区域觅食。
(16)
式中,t表示当前迭代次数,Xi,j表示第i只麻雀的第j维位置信息,α是0到1之间的一个随机数且α≠0,G是最大迭代次数,R2和ST分别代表报警值和安全阈值,Q是服从正态分布的随机数,L是d维的全1矩阵。
(17)
式中,xworst表示当前适应度最差的个体所在位置,xp表示当前适应度最优的个体所在位置。A是d维矩阵,其中每个元素会随机赋值为-1或1,A+=AT(AAT)-1。
警戒者的初始位置在种群中随机产生,且数量一般占总数量的10%到20%。根据规则6),警戒者按照以下方式进行位置更新:若当前个体适应度fi大于全局最优个体适应度fg,说明该个体在种群外围,为获得更高的适应度,个体需要不断变换位置;若两者相等,说明该个体在种群中心,为降低被捕食的风险,个体会不断向附近的同伴靠近。
(18)
式中,xbest表示全局适应度最优个体所在位置。β和k都是控制步长,β服从均值为0,方差为1的正态分布,k是-1到1之间的随机数。ε是用以避免分母为0的常数。fi、fg和fω分别代表当前个体适应度值、全局最优和最差适应度值。
4.3 SSAKELM算法流程
Step1:初始化种群、各类群体比例、迭代次数。
Step2:计算适应度值并进行排序。(本文适应度函数取KELM模型预测数据的均方根误差)
Step3:利用式(16)更新发现者位置。
Step4:利用式(17)更新加入者位置。
Step5:利用式(18)更新警戒者位置。
Step6:计算适应度值并更新麻雀位置。
Step7:判断是否达到停止条件,若达到则输出结果,退出运算;否则,重复执行Step 2-6。
5 实验与分析
5.1 实验条件
本文以某地源热泵空调系统为研究对象,建立其每小时负荷预测方法。文献[20]对影响该系统小时负荷的因素做了灰色关联度分析,发现用预测时刻前四个小时的历史负荷数据进行负荷预测就能取得很好的效果。故本文以拟预测时间的前四小时的历史负荷为输入建立了VMD-SSAKELM组合负荷预测模型,训练样本选用2018年5月1日至6月29日每小时空调负荷,测试样本为6月30日空调负荷。选取平均绝对误差(MAE),均方根误差(RMSE),平均绝对百分比误差(MAPE)这三个误差指标进行评价。
(19)
(20)
(21)
5.2 KELM预测效果分析
建立BPNN模型、SVM模型、ELM模型和KELM模型进行负荷预测。图1和图2分别为各模型6月30日负荷预测结果和误差图,表1展示了四种预测模型的性能指标。可以看出ELM比常用于负荷预测的BPNN模型和SVM模型的预测误差更低,预测时间更短。而KELM模型具有最小的误差,预测时间也相对短。
表1 预测模型性能指标
图1 6月30日负荷预测输出
图2 6月30日负荷预测误差
5.3 SSA优化KELM效果分析
使用SSA算法对KELM进行优化,SSA主要参数设置为:预警值ST=0.6,发现者比例PD=0.7,警戒者比例SD=0.2,种群数量pop=20,最大迭代次数G=20。
图3、图4分别展示了SSA优化前后的模型预测结果和预测误差,图5为SSA收敛曲线。SSA算法在近第7次迭代就收敛,有很快的收敛速度且优化后模型的精度得到了提高。
图3 SSA优化前后KELM模型预测输出
图4 SSA优化前后KELM模型预测误差
图5 SSAKELM收敛曲线
5.4 VMD-SSAKELM组合模型预测效果分析
空调负荷的变化一般具有非线性、非平稳的特性,且复杂程度较高,直接将数据输入进行预测难以达到很好的效果。本文采用VMD对历史负荷序列进行分解,然后对每个模态使用经麻雀搜索算法优化后的核极限学习机进行预测,汇总得到最终预测结果。图6为负荷序列VMD分解图,模态数K=8,惩罚因子α=2000。图7和图8为KELM和SSA优化的KELM经VMD分解前后的混合模型预测结果和误差。可以看出,经VMD分解后模型精度有了很大的提升。
图6 负荷序列VMD分解图
图7 6月30日负荷预测输出(VMD分解)
图8 6月30日负荷预测误差(VMD分解)
表2和图9展示了所有预测模型的性能指标。可以发现SSA优化后的KELM模型误差有所降低,其中MAE降低了13.62%,RMSE降低了12.17%,MAPE降低了6.36%。而针对同样使用SSA优化后的KELM算法,经VMD分解模型的误差也比未经VMD分解的模型误差小,其中MAE降低了52.34%,RMSE降低了57.81%,MAPE降低了60.08%,而本文提出的混合模型综合了多个方法的优点,拥有最高的预测精度。
表2 所有预测模型性能评价指标表
图9 所有预测模型性能评价指标图
6 结论
本文提出一种新的空调负荷组合预测模型,即先对利用VMD方法将负荷序列分解得到一组模态分量;然后用SSA优化后的KELM模型对每个模态进行预测,把所有模态预测结果汇总得到最终预测结果。主要结论如下:
1)在本文负荷预测模拟实验中,KELM预测模型表现优于BP模型、SVM模型和ELM模型。对基于RBF核函数的KELM模型,使用SSA优化其正则化系数C和核参数γ,能够提高KELM模型的精度,减小其预测误差。
2)VMD算法具有较好的模态分解能力,运用VMD将原始负荷序列分解为一系列特征不相同的模态分量,然后对每一模态分量单独进行建模分析预测的混合预测方法能够极大提高预测模型准确性和可靠性。
3)本文提出的混合预测模型结合了VMD和KELM的优点,可以快速准确完成空调超短期负荷预测。