工程科学与技术   2018, Vol. 50 Issue (2): 84-90

1. 四川大学 水利水电学院 水力学与山区河流开发保护国家重点实验室，四川 成都 610065;
2. 四川川投田湾河开发有限责任公司，四川 成都 610000

Improved Bat Algorithm for Economic Dispatch in Cascade Hydropower Stations
JIANG Fangli1, HUANG Weibin1, LI Jidong1, LIU Gang2, CHEN Shijun1, MA Guangwen1
1. College of Water Resources and Hydropower,State Key Lab. of Hydraulics and Mountain River Eng.,Sichuan Univ.,Chengdu 610065,China;
2. Sichuan Chuantou Tianwanhe Development Corp. Ltd.,Chengdu 610000,China
Abstract: The mid-long term economic scheduling of cascade hydropower stations is a typical nonlinear optimization problem. It is usually required to maximize the total power generation giving consideration to efficiency of solution while simultaneously meeting complicated hydraulic and electrical constraints. To solve this problem effectively, an improved bat algorithm (IBA) was proposed by improving the updating strategies in Bat Algorithm and introducing the mutation and selection operation in Differential Evolution algorithm. The following improvements were made to the updating strategies in BA: 1) The pulse frequency of each bat was not updated with the population iteration. 2) The impulse emission rate and the pulse volume of each bat were updated with the population iteration. 3) New individuals generated by global search were accepted unconditionally in IBA, but individuals generated by local search were accepted conditionally. 4) The flight velocity formula was improved to reduce the deviation between the new individual and the optimal individual of the current population. In order to increase the diversity of the population and to avoid local optimum, the mutation and selection operation in DE was introduced, and the mutation probability was thus dynamic. A model was established to maximize the annual energy output and maximize the minimal output of cascaded hydropower stations. Based on the economic dispatch problem of cascade hydropower stations of Dadu River, the main control parameters (zoom factor and maximum iterations) of IBA were tested and analyzed. IBA, BA and POA were used to simulate the scheduling at the same year. Taking account to the characteristics of output in the dry season, the total power generation and the running time, we can conclude that compared with the other two algorithms, the simulation results obtained by using IBA verified its superiority in both efficiency and precision.
Key words: optimal scheduling    improved bat algorithm    differential mutation    cascade hydropower stations

1 数学模型

1.1 目标函数

1）梯级总发电量最大

 $E = { max}\sum\limits_{i = 1}^n {\sum\limits_{t = 1}^T {{K_{i,t}}} } \cdot {Q_{i,t}} \cdot {H_{i,t}} \cdot {M_t}$ (1)

2）梯级电站年内最小出力最大化

 $NP = { max}\;\mathop { min}\limits_{1 \le t \le T} \sum\limits_{i = 1}^n {{K_{i,t}} \cdot {Q_{i,t}} \cdot {H_{i,t}}}$ (2)

 $\mathop { min}\limits_{1\le t \le T} \sum\limits_{i = 1}^n {{K_{i,t}} \cdot {Q_{i,t}} \cdot {H_{i,t}} \ge \varepsilon }$ (3)

 $E \!=\! { max} \!\!\sum\limits_{t ={{1}}}^T {\left[\!\! {\sum\limits_{i = 1}^n {\!\!{K_{i,t}} \cdot {Q_{i,t}}} \cdot {H_{i,t}} \!-\! {\sigma _t} \cdot \lambda \cdot \!\left| {\varepsilon \!-\!\! \sum\limits_{i = 1}^n {{K_{i,t}} \cdot {Q_{i,t}} \cdot {H_{i,t}}} } \right|} \!\right]} \cdot \!{M_t}$ (4)

 {\sigma _t} = \left\{ {\begin{aligned} & {0,\;\sum\limits_{i = 1}^n {{K_{i,t}} \cdot {Q_{i,t}} \cdot {H_{i,t}} \ge \varepsilon } }; \\ & {1,\;\sum\limits_{i = 1}^n {{K_{i,t}} \cdot {Q_{i,t}} \cdot {H_{i,t}} < \varepsilon } \;} \end{aligned}} \right. (5)
1.2 约束条件

1）水库水量平衡

 ${V_{i,t + 1}} = {V_{i,t}} + ({I_{i,t}} - {Q_{i,t}} - {S_{i,t}}) \cdot {M_t}$ (6)

2）梯级水库水力联系

 ${I_{i + 1,t}} = {Q_{i,t}} + {S_{i,t}} + {R_{i,i + 1,t}}$ (7)

3）水库水位约束

 ${\textit{Z}}_{i,t}^{\min } \le {{\textit{Z}}_{i,t}} \le {\textit{Z}}_{i,t}^{\max }$ (8)

4）过机流量约束

 $Q_{i,t}^{u,\min } \le {Q_{i,t}} \le Q_{i,t}^{u,{ max}}$ (9)

5）下泄流量约束

 $Q_{i,t}^{\min } \le {Q_{i,t}} + {S_{i,t}} \le Q_{i,t}^{\max }$ (10)

6）单站出力约束

 $N_{i,t}^{\min } \le {K_{i,t}} \cdot {Q_{i,t}} \cdot {H_{i,t}} \le N_{i,t}^{\max }$ (11)

7）调度期末水位限制

 ${{\textit{Z}}_{i,{{start}}}} = {{\textit{Z}}_{i,{{end}}}}$ (12)

8）所有变量非负约束（ $\ge 0$ ）。

2 改进蝙蝠算法 2.1 蝙蝠算法

Step1：参数初始化。模型参数具体包括种群个体数 $TN$ 、脉冲音量最大值 ${A_0}$ 、脉冲发射率最大值 ${R_0}$ 、脉冲频率范围 $\left[ {{f_{\min }},{f_{\max }}} \right]$ 、音量衰减系数 $\alpha$ 、脉冲发射率增强系数 $\gamma$ 、搜索精度 $\varepsilon$ 或最大迭代次数 ${g_{\max }}$

Step2：蝙蝠位置初始化。蝙蝠在 $d$ 维空间中随机扩散分布一组可行解，即随机初始化每只蝙蝠的位置 ${{ X}_j} = {\left( {{x_j}_1,{x_j}_2, \cdots ,{x_{jd}}} \right)^{{T}}}$ $j = 1 , 2 , \cdots , TN$ 。计算个体适应度值 $f({{ X}_j})$ ，根据其优劣确定当前种群最优蝙蝠个体位置 ${X_ * }$

Step3：蝙蝠的搜索脉冲频率、速度、位置更新。种群在每一次迭代过程中，更新搜索脉冲频率、速度、位置，称之为全局搜索，公式如下：

 ${f_j} = {f_{\min }} + ({f_{\max }} - {f_{\min }}) \cdot \beta$ (13)
 ${ V}_j^{g + 1} = { V}_j^g + ({ X}_j^g - {{ X}_ * }) \cdot {f_j}$ (14)
 ${ X}_j^{g + 1} = { X}_j^g + { V}_j^{g + 1}$ (15)

Step4：生成均匀分布随机数 $rand$ ，如果 $rand > {r_j}$ （第 $j$ 只蝙蝠脉冲发射率），则对当前种群最优解进行随机扰动，产生一个新的个体，对其进行越界处理，替代Step3产生的第 $j$ 只蝙蝠的位置。这一步称为局部搜索，随机游走产生新个体的公式为：

 ${{ X}_{{{new}}}} = {{ X}_{{{old}}}} + [\theta \cdot {{A}^g}]$ (16)

Step5：计算种群所有个体适应度函数值 $f({{ X}_j})$ ，生成均匀分布随机数 $rand$ ；若 $rand < {A_j}$ （第 $j$ 只蝙蝠脉冲音量）且 $f({{ X}_j}) > f({{ X}_ * })$ ，接受本次迭代更新产生的蝙蝠个体位置，按照式（17）～（18）对 ${r_j}$ ${A_j}$ 进行更新：

 $r_j^{g + 1} = {R_0} \cdot \left[ {1 - \exp ( - \gamma \cdot g)} \right]$ (17)
 $A_j^{g + 1} = \alpha A_j^g$ (18)

Step6：计算所有蝙蝠的适应度值，确定当前种群最优解和最优值。

Step7：重复Step3～6，直至满足设定的终止条件。

Step8：输出全局最优解和最优值。

2.2 算法的改进

1）在作者提出的改进蝙蝠算法中，每只蝙蝠个体的脉冲频率不随个体 迭代而更新，减少计算时间。蝙蝠个体脉冲频率初始化公式为：

 ${f_{j,i}} = {f_{\min }} + ({f_{\max }} - {f_{\min }}) \cdot {\beta _{j,i}}$ (19)

2）更改新解接受条件，即无条件接受全局搜索产生的新解 ${{ X}_j}(g + 1)$ ；对于局部搜索产生新解 ${{ X}_{1,j}}(g + 1)$ ，只有当 $f({{ X}_{1,j}}(g + 1)) > f({{ X}_j}(g + 1))$ 时，才由 ${{ X}_{1,j}}(g + 1)$ 取代 ${{ X}_j}(g + 1)$ 作为第 $j$ 只蝙蝠的新位置。

3）蝙蝠个体脉冲发射率 $r_j$ 和脉冲音量 $A_j$ 随种群迭代而更新。

4）更改速度更新公式，如式（20）所示，缩小新个体与当前种群最优个体的偏离值，使新个体靠近当前种群最优个体。经实验证明，这一举措可以明显减少计算时间，提高计算精度。

 ${ V}_j^g = { V}_j^{g - 1} - ({ X}_j^{g - 1} - {{ X}_ * }) \cdot {{ f}_j}$ (20)

5）针对蝙蝠算法中缺乏变异机制，种群多样性较低，算法易陷入局部最优的不足，引入DE算法中的变异、选择操作。

2.3 求解步骤

Step1：参数初始化。模型参数具体包括种群个体数 $TN$ 、脉冲音量最大值 ${A_0}$ 、脉冲发射率最大值 ${R_0}$ 、脉冲频率范围 $\left[ {{f_{\min }},{f_{\max }}} \right]$ 及按照式（19）初始化的蝙蝠个体脉冲频率矢量、音量衰减系数 $\alpha$ 、脉冲发射率增强系数 $\gamma$ 、缩放因子 $F$ 、搜索精度 $\varepsilon$ 或最大迭代次数 ${g_{\max }}$

Step2：蝙蝠位置初始化。蝙蝠在 $d$ 维空间中随机扩散分布一组可行解，即随机初始化每只蝙蝠的位置 ${X_j} = {({x_j}_1,{x_j}_2, \cdots ,{x_{jd}})^{{T}}}$ $j = 1 , 2 , \cdots , TN$

Step3：确定初始化种群最优个体。计算所有个体适应度函数值 $f({{ X}_j})$ ，根据其优劣确定当前种群最优蝙蝠个体位置 ${{ X}_ * }$

Step4：种群全局搜索、更新。种群在每一次迭代过程中，分别按照式（20）、（15）、（17）、（18）更新搜索速度、位置、脉冲发射率、脉冲音量，对蝙蝠位置进行越界处理。

Step5：种群局部搜索。生成均匀分布随机数 $rand1$ $rand2$ ，如果 $rand1 > {r_j}$ ，则按照式（16）对当前种群最优解进行随机扰动，产生一个新的个体 ${{ X}_{1,j}}$ ，对其进行越界处理，计算其适应度函数值。如果 $f({{ X}_{1,j}}) >$ $f({{ X}_j})$ $rand2 < {A_j}$ ，局部搜索新解优于全局搜索新解，则由局部搜索新解 ${{ X}_{1,j}}$ 取代全局搜索新解 ${{ X}_j}$

Step6：种群差分变异、选择。生成均匀分布随机数 $rand3$ ，如果 $rand3 \le CR$ （变异概率，式（21）），则按照式（22）生成一个新的解 ${{ X}_{2,j}}$ ，进行越界处理，计算适应度函数值。如果 $f({{ X}_{2,j}}) > f({{ X}_j})$ ，则由 ${{ X}_{2,j}}$ 取代 ${{ X}_j}$ 成为第 $j$ 只蝙蝠第 $g$ 次更新的位置。

 $\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!\!CR = 0.6 + g/(2 \cdot {g_{\max }})$ (21)
 ${{ X}_{2,j}}(g) = {{ X}_ * } + F \cdot \left( {{{ X}_b}(g) - {{ X}_c}(g)} \right)$ (22)

Step7：计算所有蝙蝠的适应度值，确定当前种群最优解和最优值。

Step8：重复Step4～7，直至满足设定的终止条件。

Step9：输出全局最优解和最优值。

3 实　例

3.1 算法参数测试与分析

 图1 算法参数测试结果 Fig. 1 Test results of the parameters for IBA

3.2 模拟计算结果及分析

4 结　论