近年来,随着全球气候变暖以及能源危机的加剧,人们对清洁、可持续能源的开发与利用越来越重视,关于光伏、风能等可再生能源发电的研究越来越多[1-2]。光伏发电作为可再生能源中最为丰富且受地域限制较少的发电形式[3],发展非常迅速。据国家能源局统计,截至2017年6月,我国全国光伏发电装机容量达到101.82 GW,其中,光伏电站装机容量84.39 GW,分布式光伏装机容量17.43 GW,全国光伏发电量达到518亿 kW?h,同比增加75%。光伏发电对调整和优化能源结构起到了巨大的推动作用,具有良好的社会效益和经济效益。但同时光伏发电也具有随机性、间歇性、波动性的特点[4-5],各地光伏发电产生大量弃光现象,在新疆和甘肃地区尤为严重[6]。这不仅导致电量损失非常大,而且给含光伏的电力系统调度带来了巨大挑战,不利于光伏发电产业的可持续发展。如何对含光伏发电电力系统进行调度优化成为当前国内外研究的热点,文献[7]采用等效电量函数法分时段对含有光伏的电力系统进行随机生产模拟,并从经济性、可靠性等层面分析了光伏并网对电力系统的影响;文献[8]提出将盒式集合鲁棒优化理论引入到含大规模光伏电站的电力系统调度优化中;文献[9]提出了风、光、蓄一体化出力的调度策略,建立的模型中包含以风、光、蓄多种能源输出功率最大和系统负荷波动最小的多目标函数;文献[10]研究了海岛风、光、海水蓄联合发电系统的调度策略问题,提出了联合发电系统的3种调度方法。目前国内主要从电力系统规划、调度、控制、仿真角度讨论了大规模光伏消纳的关键技术[11],对含光伏电力系统主要采用多种能源相互协调策略,以达到优化经济调度的目标[12]。
随着光伏发电的迅速发展,仅靠供应侧的能源互补或传统可调控机组来协调可再生能源发电的不稳定性,不仅难以控制且成本高[13]。需求响应作为一种有效的调节方式,是指电力用户根据电力市场价格信号(分时电价响应、实时电价响应、尖峰电价响应)或激励机制主动改变原有电力消费模式的行为[14],引入需求响应可以促进电力用户合理用电并协调含可再生能源电力系统的调度优化,国内外已有众多研究将需求响应考虑到含光伏电力系统中。文献[15]提出了集成光伏、风电、燃气轮机、储能系统和激励型需求响应为虚拟电厂,以运营收益最大化为目标函数,建立虚拟电厂常规调度优化模型;文献[16]提出了一个基于优先级的需求响应管理策略来调节光伏发电的不稳定性;文献[17]提出一种光伏用户集群实现电能共享办法,通过建立内部价格模型,实现有序的电能交易。
以上研究均强调了电价的需求响应能给需求侧带来好处,但忽略了需求响应给供应侧带来的利益,并且没有给出具体的需求响应过程。本文在已有研究的基础上,将分时电价响应考虑到含光伏电力系统的调度优化模型中,建立了以发电调度成本最小为目标的优化模型,并通过改进遗传算法来对模型进行求解,验证了考虑分时电价响应给调度优化模型带来的具体利益。
1 用户电价响应模型 1.1 需求价格弹性 用户电价响应模型是基于需求价格弹性构建的,假设用
$\lambda $
表示需求价格弹性,根据经济学的需求原理定义
$\lambda $
,表示在一定时段内电量变化率与电价变化率之比[18-19],即
$\lambda=\frac{{{{\Delta Q} / Q}}}{{{{\Delta p} / p}}}$
|
(1) |
式中:
$\Delta Q$
表示电量
$Q$
的相对增量;
$\Delta p$
表示电价
$p$
的相对增量。
一般地,用户的电价响应过程分为单时段响应和多时段响应。单时段响应是指用户某个时段用电量大小只与当时的电价有关,多时段响应是指用户某个时段的用电量不仅与当时的电价有关,还与其他时段电价有关,例如在某一时段电价较高,用户可以降低该时段用电量并将负荷转移到低电价时段。显然,多时段响应更加符合实际情况。在多时段响应过程中,将用户的需求价格弹性分为自弹性系数和交叉弹性系数,分别如式(2)和式(3)所示。
${\lambda _{ii}}=\frac{{{{\Delta {Q_i}} / {{Q_i}}}}}{{{{\Delta {p_i}} / {{p_i}}}}}$
|
(2) |
${\lambda _{ij}}=\frac{{{{\Delta {Q_i}} / {{Q_i}}}}}{{{{\Delta {p_j}} / {{p_j}}}}}$
|
(3) |
式中:
$i$
,
$j$
表示时段,且
$i
e j$
;
$\Delta {Q_i}$
表示
$i$
时段的电量变化量;
$\Delta {p_i}$
和
$\Delta {p_j}$
分别表示
$i$
,
$j$
时段的电价变化量。
可以通过式(4)和式(5)分别计算
$\Delta {Q_i}$
和
$\Delta {p_i}$
为
$\Delta {Q_i}=Q_i^{'} - Q_{i0}^{}$
|
(4) |
$\Delta {p_i}=p_i^{'} - p_{i0}^{}$
|
(5) |
式中:
$Q_i^{'}$
和
$p_i^{'}$
分别表示实施电价响应后
$i$
时段用户用电量、电价;
$Q_{i0}^{}$
和
$p_{i0}^{}$
分别表示实施电价响应前
$i$
时段用户用电量、电价。
1.2 用户电价响应模型的构建 对于某时段1~
$n$
,用户的电价响应模型可表示为
$\left[ \begin{array}{l} {{\Delta {Q_1}} / {{Q_1}}} \\ {{\Delta {Q_2}} / {{Q_2}}} \\ \begin{array}{*{20}{c}} {}& \vdots \end{array} \\ {{\Delta {Q_n}} /{{Q_n}}} \\ \end{array} \right]={{E}}\left[ \begin{array}{l} {{\Delta {p_1}} / {{p_1}}} \\ {{\Delta {p_2}} / {{p_2}}} \\ \begin{array}{*{20}{c}} {}& \vdots \end{array} \\ {{\Delta {p_n}} / {{p_n}}} \\ \end{array} \right]$
|
(6) |
式中,
${{E}}=\left[ {\begin{array}{*{20}{c}} {{\lambda _{11}}}&{{\lambda _{12}}}& \cdots &{{\lambda _{1n}}} \\ {{\lambda _{21}}}&{{\lambda _{22}}}& \cdots &{{\lambda _{2n}}} \\ \vdots & \vdots &{}& \vdots \\ {{\lambda _{n1}}}&{{\lambda _{n2}}}& \cdots &{{\lambda _{nn}}} \end{array}} \right]$
是弹性矩阵,由需求价格弹性
$\lambda $
组成。
参考文献[20],对弹性矩阵作如下假设:在给定的时间间隔
$o\left( {o=j - i} \right)$
内,任意
$i$
时段的电价对
$j$
时段的同一类型电能消费具有相同的影响,则有
$\left\{\begin{array}{l} {\lambda _{11}}={\lambda _{22}}=\cdots={\lambda _{nn}}={\lambda _0} \\ {\lambda _{12}}={\lambda _{23}}=\cdots={\lambda _{\left( {n - 1} \right)n}}={\lambda _1} \\ {\lambda _{13}}={\lambda _{24}}=\cdots={\lambda _{\left( {n - 2} \right)n}}={\lambda _2} \\ {\lambda _{21}}={\lambda _{32}}=\cdots={\lambda _{n\left( {n - 1} \right)}}={\lambda _{ - 1}} \\ {\lambda _{31}}={\lambda _{42}}=\cdots={\lambda _{n\left( {n - 2} \right)}}={\lambda _{ - 2}} \\ \end{array}\right. $
|
(7) |
以此类推,则弹性矩阵
${{E}}$
每条左对角线上的需求价格弹性都相同。通过这样的方法,可以将式(6)简化为
$\frac{{\Delta {Q_i}}}{{{Q_i}}}=\sum\limits_{o=- b}^{ + b} {{\lambda _o}\frac{{\Delta {p_j}}}{{{p_j}}}} $
|
(8) |
式中:
$b$
表示对时段
$i$
的用电量有影响的时段范围,
$0 \leqslant b < n$
。通过联合式(4)~(8),可以得到式(9)为
$\frac{{Q_i^{'} - {Q_{i0}}}}{{{Q_{i0}}}}=\sum\limits_{j - i=- b}^{ + b} {{\lambda _{j - i}}\frac{{p_j^{'} - {p_{j0}}}}{{{p_{j0}}}}} $
|
(9) |
最后,简化式(9)得到实施电价响应后用户在
$i$
时段的电需求量,可表示为
$Q_i^{'}={Q_{i0}}\left( {1 + \sum\limits_{j - i=- b}^{ + b} {{\lambda _{j - i}}\frac{{p_j^{'} - {p_{j0}}}}{{{p_{j0}}}}} } \right)$
|
(10) |
2 含光伏电力系统优化调度模型 本文以燃料机组发电调度成本最小为目标建立模型,其中发电调度成本包含机组发电成本和启停成本。在含光伏电力系统中,光伏发电可变成本较小,可忽略不计,提高光伏发电的利用率有助于降低电力系统发电成本。因此,如何协调传统燃料机组与光伏发电机组的发电输出功率,使电力系统获得更好的经济效益,是发电调度要解决的关键问题。本文以一个调度周期内燃料机组的发电调度成本最低为目标,建立模型为
$ \begin{split} & \quad \displaystyle\mathop {\min }\limits_{{P_l}\left( t \right),{u_l}\left( t \right)} F=\displaystyle\sum\limits_{t=1}^T {\sum\limits_{l=1}^L {{u_l}\left( t \right)C\left( {{P_l}\left( t \right)} \right)}} +\\ & \qquad {S_l}\left| {{u_l}\left( t \right) - {u_l}\left( {t - 1} \right)} \right| \end{split}$
|
(11) |
${\rm{s.t.}}\;\;\;\;\; \sum\limits_{l=1}^L {{P_l}\left( t \right)} + {P_{{\rm{pv}}}}\left( t \right)=Q\left( t \right)$
|
(12) |
${P_{l,\min }} \leqslant {P_l}\left( t \right) \leqslant {P_{l,\max }}$
|
(13) |
${P_l}\left( t \right) - {P_l}\left( {t - 1} \right) \leqslant r_l^1{T_1}$
|
(14) |
${P_l}\left( {t - 1} \right) - {P_l}\left( t \right) \leqslant r_l^2{T_1}$
|
(15) |
${u_l}\left( t \right)\left( {M_l^{\rm{r}} - T_{l,\min }^{\rm{r}}} \right) \geqslant 0$
|
(16) |
${u_l}\left( t \right)\left( {M_l^{\rm{s}} - T_{l,\min }^{\rm{s}}} \right) \geqslant 0$
|
(17) |
式(11)中:
$T$
表示一个调度周期包含的总时段数;
$L$
表示可控燃料机组数量;
${u_l}\left( t \right)$
表示
$t$
时段第
$l$
个机组启停状态;
${C_{}}\left( {{P_l}\left( t \right)} \right)$
表示第
$l$
个机组在
$t$
时段的运行费用,
${C_{}}\left( {{P_l}\left( t \right)} \right)={a_l}{P_l}\left( t \right)_{}^2 + {b_l}{P_l}\left( t \right) + {c_l}$
,其中
${a_l},{b_l},{c_l}$
是常数,表示机组运行费用参数;
${P_l}\left( t \right)$
表示第
$l$
个机组在
$t$
时段输时段输出功率;
${S_l}$
表示第
$l$
个可控机组启停费用。式(12)为系统功率平衡约束,式中:
${P_{{\rm{pv}}}}\left( t \right)$
表示
$t$
时段光伏输出功率;
$Q\left( t \right)$
表示
$t$
时段系统负荷。式(13)为发电机组输出功率约束,式中,
${P_{l,\max }}$
和
${P_{l,\min }}$
分别表示第
$l$
个机组输出功率的上下限。式(14)和式(15)为发电机组爬坡约束,式中:
$r_l^1$
,
$r_l^2$
分别表示第
$l$
个机组向上和向下爬坡最大功率;
${T_1}$
表示一个时段长度。式(16)和式(17)为最小停机时间和最小开机时间约束,式中:
$M_l^{\rm{r}}$
和
$M_l^{\rm{s}}$
分别表示最小开机时间和最小停机时间;
$T_{l,\min }^{\rm{r}}$
和
$T_{l,\min }^{\rm{s}}$
分别表示最短运行时间和最短停运时间。
3 模型求解 3.1 模型求解流程图 采用遗传算法对模型进行求解,提出模型求解流程如图1所示。在求解基于需求响应的含光伏电力系统优化调度模型时,先求解引入需求响应后的负荷,然后以需求响应后的负荷为基础求解机组最优调度方案。两处均采用遗传算法求解,且均采用精英选择策略,但编码方式和适应度函数不同。改进后的遗传算法不仅更加适用于求解优化调度中含多变量、多约束的非线性优化问题,而且可以防止种群最优个体在下一代丢失,保证最终求解的个体是种群最优个体。
3.2 改进遗传算法求解步骤 求解基于需求响应的含光伏电力系统优化调度模型分为两步。
第一步:求解考虑需求响应后的负荷。步骤为
a. 编码、初始化种群。在求解需求响应后的负荷时,变量为分时电价,采用二进制编码方式,需要解码,设
${{{Y}}_i}={\left( {{{{y}}_{m1}},{{{y}}_{m2}}, \cdots ,{{{y}}_{mW}}} \right)^{\rm{T}}}$
|
(18) |
式中:
${{{Y}}_i}$
表示由分时电价决策变量构成的向量;
$W$
表示电价决策变量个数;
${{{y}}_{mi}}$
表示第
$i$
个决策变量对应的二进制编码,是
$1 imes H$
的行向量,
$i=1,2, \cdots ,W$
;
$H$
表示二进制编码位数。
设群体规模为
$N$
,随机生成
$N$
个染色体,则由电价变量构成的染色体组成的初始群体为
$ {{{G}}_1}\left( 0 \right)={\left( {\begin{array}{*{20}{c}} {{{{Y}}_1}\left( 0 \right),}&{{{{Y}}_2}\left( 0 \right),}&{ \cdots ,}&{{{{Y}}_N}\left( 0 \right)} \end{array}} \right)^{\rm{T}}} $
|
(19) |
b. 适应度1的计算。需求响应是为了达到减小系统负荷波动的目标,故以系统负荷峰谷差的倒数作为适应度函数,其表达式为
$f_{\rm{fit}}^1=\frac{1}{{Q_{\max }^{} - Q_{\min }^{} + 1}}$
|
(20) |
式中,
$Q_{\max }^{}$
和
$Q_{\min }^{}$
分别表示考虑需求响应后一个调度周期内的最大负荷和最小负荷。将分时电价和给定的需求弹性系数带入式(10),即可求出考虑需求响应后的负荷。
c. 精英选择、交叉、变异。首先找出当前种群中适应度最高的个体,然后对当前种群进行复制(轮盘赌法则)、单点交叉、均匀变异得到下一代种群,再计算下一代种群个体适应度。如果下一代种群中最佳个体适应度小于当前群体最佳个体适应度,则将当前群体适应度大于下一代最佳个体适应度的一个或多个个体直接复制到下一代,最后在下一代种群中,用迄今为止最优个体替换种群中适应度最差的个体。
d. 停止准则。如果达到最大遗传代数,则算法结束,输出需求响应后最优分时电价,否则进行精英选择、交叉、变异等遗传操作。
e. 求解需求响应后的负荷。输出需求响应后最优分时电价和给定的需求弹性系数,根据式(10)解得需求响应后的负荷。
第二步:以需求响应后的负荷为基础数据,求解调度优化模型。步骤为
a. 编码、初始化种群。在求解模型时,对机组启停状态变量采取0–1整数编码,无需解码。变量编码方式为
${{{Z}}_q}=\left( {{{{z}}_{q1}},{{{z}}_{q2}}, \cdots ,{{{z}}_{qV}}} \right)_{}^{\rm{T}}$
|
(21) |
式中:
${{{Z}}_q}$
表示由机组启停状态决策向量构成的矩阵;
$V$
表示决策向量的个数;
${{{z}}_{qi}}$
表示第
$i$
台机组的启停状态构成的决策向量,是
$1 imes U$
的行向量,
$i=1,2, \cdots ,V$
;
$U$
表示二进制编码位数。
设群体规模为
$N$
,随机生成
$N$
个染色体,由机组启停状态变量构成的染色体组成的初始群体为
${{{G}}_2}\left( 0 \right)={\left(\!\! {\begin{array}{*{20}{c}} {{{{Z}}_{11}}\left( 0 \right),}&{{{{Z}}_{21}}\left( 0 \right),}&{ \cdots ,}&{{{{Z}}_{N1}}\left( 0 \right)} \end{array}} \!\!\right)^{\rm{T}}}$
|
(22) |
在机组启停变量确定后,此时的模型是一个有约束非线性极小值问题,可以通过Matlab优化工具箱中fmincon函数求解机组输出功率。
b. 适应度2的计算。以式(23)的目标函数为适应度函数,其表达式为
$f_{{\rm{fit}}}^2=\frac{1}{{F + 1}}$
|
(23) |
c. 精英选择、交叉、变异。同第一步的c。
d. 停止准则。同第一步的d。
e. 输出发电机组最优调度成本。
4 算例分析 4.1 基础数据描述 本文采用10台可调控燃料发电机组和规模为340 MW的光伏电源进行算例分析[21]。各机组参数参考文献[22-25],并按照国内火电机组实际情况进行修改,具体参数如表1所示。系统初始负荷曲线及预测光伏输出功率曲线如图2所示。
表 1(Table 1)
表 1 10台可调控机组参数
Table 1 10 sets of controllable unit parameters
机组序号 |
最大功率
$ extstyle P_{c,\max }$
/MW
|
最小功率
$ extstyle P_{l,\min }$
/MW
|
${a_l}$
|
${b_l}$
|
${c_l}$
|
最短运行时间
$T_{l,\min }^{\rm{r}}$
/h
|
最短停运时间
$T_{l,\min }^{\rm{s}}$
/h
|
启动费用
${S_l}$
/元
|
初始状态
${u_l}\left( t \right)$
|
1 |
455 |
150 |
0.000 48 |
16.20 |
1 000 |
8 |
8 |
90 000 |
1 |
2 |
455 |
150 |
0.000 31 |
17.26 |
970 |
8 |
8 |
100 000 |
1 |
3 |
130 |
20 |
0.002 00 |
16.60 |
700 |
5 |
4 |
11 000 |
0 |
4 |
130 |
20 |
0.002 11 |
16.50 |
680 |
5 |
4 |
11 200 |
0 |
5 |
162 |
25 |
0.003 98 |
19.70 |
450 |
6 |
5 |
18 000 |
0 |
6 |
80 |
20 |
0.007 12 |
22.26 |
370 |
3 |
2 |
3 400 |
0 |
7 |
85 |
25 |
0.000 79 |
27.74 |
480 |
3 |
2 |
5 200 |
0 |
8 |
55 |
10 |
0.004 13 |
25.92 |
660 |
1 |
1 |
600 |
0 |
9 |
55 |
10 |
0.002 22 |
27.27 |
665 |
1 |
1 |
600 |
0 |
10 |
55 |
10 |
0.001 73 |
27.79 |
670 |
1 |
1 |
600 |
0 |
|
表 1 10台可调控机组参数
Table 1 10 sets of controllable unit parameters
|
由图2可以看出:系统初始负荷存在明显的峰谷时段,且峰谷差比较大;光伏输出功率主要集中在6:00~18:00之间,在这个时间段之外,光伏几乎不再输出功率,其输出功率具有不稳定性。
引入需求响应可以增加对负荷的调控能力,随着电量的转移,不仅满足了用户的利益,也有利于电力系统负荷削峰填谷,故对用户采用分时电价响应。设置用户分时电价响应前的平均电价为
${p_{i0}}$
=0.425元
$/({\rm{kW}} { ext{·}} {\rm{h)}}$
,一个调度周期为24 h,分时电价取值范围为[0,1],并将分时电价的时段划分如下:谷时段0:00—05:00,22:00—24:00;平时段05:00—08:00,14:00—19:00;峰时段:08:00—14:00,19:00—22:00。各时段用户需求价格弹性的假设如表2所示。
表 2(Table 2)
表 2 各时段需求价格弹性
Table 2 Price elasticity of demand at each time period
时段 |
谷时段 |
平时段 |
峰时段 |
谷时段 |
?0.010 |
0.010 |
0.012 |
平时段 |
0.010 |
?0.010 |
0.014 |
峰时段 |
0.012 |
0.014 |
?0.010 |
|
表 2 各时段需求价格弹性
Table 2 Price elasticity of demand at each time period
|
4.2 算例结果分析 使用改进的遗传算法求解模型,初始种群规模取300,交叉、变异概率均取0.2,最大遗传代数取100。首先通过改进的遗传算法的第一步求解得到优化后的分时电价方案为:谷时段0.17元/
$({\rm{kW}} { ext{·}} {\rm{h)}}$
,平时段0.49元
$/({\rm{kW}} { ext{·}} {\rm{h)}}$
,峰时段0.83元/
$({\rm{kW}} { ext{·}} {\rm{h)}}$
。
然后,用户按照式(10)对优化后的分时电价进行响应,得到一天24 h的负荷分布情况如图3所示。通过图3可以看出,考虑需求响应后电力系统负荷相比初始负荷的波动幅度减小,并且计算得出,相比初始负荷,在分时电价响应后,电力系统峰时段负荷最大降低了113.42 MW,谷时段负荷最大增加了66.83 MW,一个调度周期内发电总电量减少了874.06 MW。
最后,通过改进的遗传算法第二步对电力系统机组发电调度模型进行求解。由于考虑需求响应和包含光伏发电两种情况都会对机组发电调度结果产生影响,所以将电力系统分为以下3种情况:a. 不考虑需求响应、不含光伏;b. 不考虑需求响应、含光伏;c. 考虑需求响应、含光伏。根据这3种情况,分别对电力系统机组进行发电调度优化,并得到每种情况下各时段机组输出总功率以及发电调度成本。其中各时段机组输出功率的分布情况如图4所示。由图4可以看出,相对a,b两种情况,情况c下各时段机组输出的总功率相对平稳,说明考虑需求响应的含光伏电力系统有利于减少机组启停和稳定机组输出功率。
3种情况下分别计算得到的发电调度成本如表3所示。从表3可以看出:a. 不考虑需求响应时,含光伏比不含光伏的电力系统发电调度成本降低了26 231.75元,将发电调度成本分为启停成本和燃料成本,含光伏比不含光伏发电系统的启停成本升高3 600元。这是由于光伏发电的不稳定性造成的,电力系统通过调整发电机组启停状态来应对光伏发电的不稳定性,这样的调节方式经济成本高且灵活性差,不利于含光伏发电系统的长久发展。b. 考虑需求响应时,将情况c与情况b相比较,得到情况c的发电调度成本下降了25 102.86元,其中机组启停成本下降了16 200元。
表 3(Table 3)
表 3 不同情况下系统的优化结果对比
Table 3 Comparison of optimization results of systems under different situations
情况 |
发电调度成本/元 |
启停成本 |
燃料成本 |
合计 |
不考虑需求响应、不含光伏 |
54 800 |
525 378.89 |
580 178.89 |
不考虑需求响应、含光伏 |
58 400 |
495 547.14 |
553 947.14 |
考虑需求响应、含光伏 |
42 200 |
486 644.28 |
528 844.28 |
|
表 3 不同情况下系统的优化结果对比
Table 3 Comparison of optimization results of systems under different situations
|
5 结束语 建立了含光伏电力系统调度优化模型并引入需求响应,通过改进遗传算法来求解模型,并进行了算例分析,充分说明了模型的正确性和有效性,得到结论为
a. 在不考虑需求响应时,含光伏相比不含光伏的电力系统,其发电调度成本下降。其中,燃料成本降低,启停成本上升,说明利用光伏发电能节约能源。但由于光伏发电不稳定,也增加了机组启停成本。
b. 在含光伏时,考虑需求响应相比不考虑需求响应的电力系统,其机组输出功率相对平稳,且调度成本中燃料成本和启停成本均下降,具有明显的优势。
由于本文所进行的算例均设置在理想情况下,并未考虑实际中的一些不稳定因素,在后续研究中,应考虑到光伏发电的一些不确定因素,并对用户负荷更进一步细化、讨论。