图3 ANN模型结构
Fig.3 Model structure of ANN
已经证明,3层ANN可以完成任一非线性映射功能[7]。典型的BP网络其隐含层节点和输出层节点的输入、输出由以下S形函数进行变换:
对隐含层节点,
对输出层节点,
式中 sj为隐含层或输出层第j个节点的加权输入;u0为常数;N为隐含层节点数;θj为隐含层或输出层节点j的阈值。
误差函数定义为:
其中 k(t)为第k个节点t时段ANN实际输出;yk(t)为样本点期望输出值。
2.2 ANN训练
网络建立好之后,对每一子ANN进行训练。训练过程中,对样本点输入、输出值作以下处理,控制其范围在[0.1,0.6],以加快收敛速度。
其中 xjmin,yjmin,xjmax,yjmax分别为其对应变量可能的最小、最大值。
收敛条件定义为:
另外,适当调整u0、隐含层节点数N、学习步长及惯性率,以得到一组最好的训练参数。训练结果表明,当选定好一组参数后,对任一子ANN,训练1万步左右,即可使CRMSE≤0.000 9。
当对应于每一类ANN的子ANN全部训练完毕后,就可以用ANN来进行在线计算。
2.3 制订日最优发电计划
由于获取的样本点是1日24 h的最优发电计划,因此由训练过的ANN计算所得的非样本集中的日发电计划也应是最优发电计划或接近最优发电计划。
由于训练ANN是分时段进行的,因此进行在线计算时也分时段进行。对于制订日最优发电计划而言,即从第1时段计算到第24时段,每一时段的计算结果有可能违背约束条件,因此有必要对ANN的结果进行校核,以得到最终的日发电计划。具体步骤如图4所示。
图4 ANN制订最优日发电计划
Fig.4 saily optimal gemeration scheduling using ANN
2.3.1 输入数据
定义输入量:
U=[u1,u2,…,u24]T
其中 u1=[z1,z2,z3,Q1,Q2,L1],…,u24=[z1,z2,z3,Q1,Q2,L24];z1,z2,z3分别为水布垭、隔河岩和高坝洲日初始水位;Q1,Q2分别为水布垭和隔河岩天然入流量;L1,L2,…,L24分别为1 h~24 h梯级水电厂总负荷。
2.3.2 区域和类ANN识别规则
首先识别当日初始水位及入流量属于哪个区域组合之中,然后识别每一输入分量ui(每一时段)最接近哪两类ANN。由于每一类ANN是根据不同时段来训练的,因此识别规则必须根据不同时段来识别。对每一输入分量中的Li分量,需根据样本点相应时段总负荷值来判别此输入分量最接近哪两类ANN。由于选取较为典型的负荷曲线作为样本点,因此,在正常日负荷情况下,24时段中大多数时段将落入固定的两类ANN之间。
2.3.3 ANN在线计算
它得出某一时段初始最优负荷分配。对每一输入分量ui中的Li分量(1≤i≤24),它必定落入最接近的某两类ANN之间,而对某类ANN而言,在训练其子ANN时,由于是对某一类负荷曲线进行训练,其某一时段总负荷值已隐含在子ANN输出节点之中,因此其样本点输入中并不包括某时段梯级总负荷值。对于非样本点的输入分量ui,其输入子ANN的分量只包含各水库初始水位及天然入流量,不包含Li分量,而子ANN的输出之和必趋近于样本点负荷值。因此,对于非样本点负荷值Li,可采用以下方法计算出各电厂最优负荷分配值(假定输入分量ui中的Li分量落入类ANN1和ANN2之间,如图5所示)。
图5 神经网络计算
Fig.5 ANN on-line calculation
当子ANN训练在误差范围内时,有:
y1(i)+y2(i)+y3(i)→P1(i)
y1′(i)+y2′(i)+y3′(i)→P2(i)
其中 P1(i),P2(i)分别为类ANN1、类ANN2样本点第i时段总负荷。
由于Li位于P1(i)和P2(i)之间,且P1(i)和P2(i)的值相差并不大(300 MW左右),因此可以用加权平均的方法求出对应输入分量ui的输出Y,Y=[y1″(i),y2″(i),y3″(i)],具体计算如下。
令权系数k1和k2分别表示Li接近P1(i)和P2(i)的程度,有式(1):
(1)
求出k1,k2之后,按式(2)求Y:
YT=k1YT1+k2YT2
(2)
由文献[1]方法计算表明,当梯级水电厂总负荷相差并不大时,其3个电厂最优负荷分配方式基本相同,因此,用式(2)来确定总负荷位于两个最接近的样本负荷之间的梯级最优负荷分配是可行的。
2.3.4 校核规则
由ANN计算得出i时段的初始最优负荷分配后,应校核各电厂出力是否超过其最大值,若超过,则令其等于最大值;另外检验若按计算出的负荷发电,各水库时段末水位是否会越限,若越限,则本时段以维持限值方式发电。
当图4中24时段都计算完毕后,即可得最优日发电计划。
2.4 实时发电控制
由于梯级来水量和用户负荷预报等因素的随机性,系统中调将不断修正梯级当前及将来应承担的负荷,因此并不总是按预定的日发电计划发电,而需实时地调整发电计划。梯级实时控制运行,即要求能在较快时间内计算出满足当前时段(预定或系统即时给定)负荷要求的梯级各电厂间的最优负荷分配,然后再最优地分配至各机组。ANN具有良好的离线学习和在线功能,非常适合担任实时控制的任务。具体计算时,与前述制订日发电计划一样需计算24时段各电厂最优负荷分配,但ANN输入数据应作部分改动,因此,对于图4所示的某些部分应作如下变动。
输入量:
U=[u1′,u2′,…,ui′,…,u24′]T
其中 u1′=[z1,z2,z3,Q1,Q2,L1′],…,ui=[z1,z2,z3,Q1,Q2,Li′],…,u24′=[z1,z2,z3,Q1,Q2,L24′];L1′,L2′,…,Li-1′为已运行时段实际负荷;Li′为当前时段总负荷;Li+1′,…,L24′为系统中调预报的将来时段总负荷。
实时控制负荷模型如图6所示。计算流程仍按图4进行。由于实际运行负荷在不断变化,因此每计算一次,均要对本时段及本时段以后的水位进行校核,若越限,则需对负荷进行调整。计算结束后,取i时段的结果为当前时段梯级最优负荷分配,即梯级各电厂即时出力。由于样本点已考虑了本时段发电对以后各时段的影响及诸如水流时滞等约束条件,因此非样本集中点的计算输出也考虑了(或近似考虑了)全面最优及约束条件。所以计算结果是最优解或接近最优解。
图6 实时控制负荷模型
Fig.6 Load model of real-time control
[1] [2] 下一页