Board logo

标题: pso算法GCLP09M09M引脚参数的水库防洪优化调度模型及应用 [打印本页]

作者: zddzic    时间: 2012-4-25 23:07     标题: pso算法GCLP09M09M引脚参数的水库防洪优化调度模型及应用

摘要: 针对传统的交互式洪水调度方案生成方式存在的缺陷,由基于PSO 算法的洪水优化调度模型,提出了有条件限制的随机自动生成方式,并利用罚函数法处理边界条件和其他非等式约束。实例应用结果表明,较之常规的动态规划法,改进后的PSO 算法计算速度快、结果合理,为流域防洪优化调度提供了有效途径。 GCLP09M09M引脚参数
  水库洪水调度对流域防洪减灾至关重要。传统的洪水调度方案通常通过人机交互方式生成。
  由于洪水调度问题的复杂性和调度经验、水平等原因,最可行的调度方案往往被遗漏,即使是经验较为丰富的调度人员也难以在短时间内生成最优方案,从而影响洪水调度决策的科学性和实时性。
  因此,有必要研究优化方法以更快、更科学地生成水库防洪调度决策。
  近年来,水库防洪优化调度逐渐成为防洪减灾非工程措施中的研究热点,并已取得较丰富的理论和应用成果。常用的优化方法有线性规划法、非线性规划法、网络流规划法、动态规划法等,但这些方法均不同程度存在计算效率低、算法复杂或局部最优解等问题,从而影响了应用。为解决复杂的水库防洪优化调度问题,文献[ 10~12 ] 提出了新的随机搜索计算方法,如模拟退火算法、遗传算法和进化算法等,丰富了洪水调度决策的内涵。尤其是微粒群算法( PSO) 作为一种新的进化计算技术,具有突出的全局和局部搜索能力及编程简单、收敛速度快等优点,已成功应用于水电站水库的优化运行。由于初始微粒群直接影响PSO 算法的收敛与否和收敛速度,对此本文提出有条件限制的随机自动生成方式,并利用罚函数法处理边界条件和其他非等式约束,以此为基础建立了PSO 模型( PSO 算法原理及模型见文献[ 13 ,14 ]) 。以浑河流域实时防洪优化调度为例,研究了基于PSO 算法的大伙房水库两种工况下的防洪优化调度问题。
  1  防洪优化调度模型
  1.1  工程概况
  大伙房水库位于辽宁省抚顺市境内,为浑河的一座关键防洪工程。水库控制流域面积5 437km8 m8 m3 ,主体工程按千年一遇洪水标准设计,万年一遇洪水标准校核,其下游沈阳市按三百年一遇洪水标准设计。水库的实际防洪调度有两种情况: ①调度1 。暴雨中心位于水库上游,而下游区间降雨很少,此时水库防洪调度重点在于水库本身和上游防洪安全; ②调度2 。全流域暴雨或暴雨中心位于下游区间,此时则需关注下游沈阳市的防洪安全。
  1.2  单目标防洪优化调度模型
  调度1 按单目标优化调度考虑,结合大伙房水库防洪调度的实际情况,采用确保大坝安全条件下水库泄流量最小为主要目标,同时将下游的防洪要求作为约束条件。防洪优化调度的目标函数为:


  式中,qm 为最大下泄流量; qi 为i 时段下泄流量, i为时段序号; T 为计算时段数;Δt 为时段长。
  1.3  考虑下游防洪任务的优化调度模型
  兼顾下游的防洪任务时,优化调度目标应为下游控制站的组合流量最小,其他为约束条件:


  式中,qm组为最大下游组合流量; Qqi为区间洪水, i为时段序号, i = 1 ,2 , ……, T 。
  1.4  约束条件
  (1) 水库水位约束: Zmin ≤Zt ≤Zmax
  (2) 泄量能力约束: qt ≤q( Zt , Bt )
  (3) 下游防洪安全约束: ( qt + Qiq) ≤q安
  (4) 出库流量变幅约束:| qt - qt - 1 | ≤Δq
  (5) 预泄约束: ,主要用于洪峰来临前各阶段。
  (6) 调洪边界条件约束: Z1 = Z1c , ZT + 1 = ZT + 1 ,c
  (7) 水量平衡约束: (Qt - qt )Δt =ΔV
  (8) 非负约束:以上所有变量均为非负值。
  式中, Zt 为t 时刻的水库水位; Zmin 、Zmax 为t 时刻水库允许的最低、最高水位; qt 为时段Δt 内的平均下泄流量;Bt 为溢洪道操作方式; q安为下游允许的安全泄量;Δq 为相邻时段出库流量变幅的允许值;Qt 为时段Δt 内的平均入库流量; Qt 为洪峰来临前所有时段的集合。
  1.5  优化模型求解
  对单目标优化调度模型可直接求解;对多目标优化模型,采用罚函数法处理,在目标函数中加入惩罚项,简化模型求解为:


  式中,M 为下游组合流域的权重系数; n 为模型指数参数,为确保目标函数量纲的一致性, n = 2 。
  其求解步骤如下。
  步骤1  对微粒群初始化设置,包括设置群体规模、迭代次数、粒子最大允许速度,随机给出初始粒子和粒子初始速度。其中每个粒子向量代表一个水库群调度过程,粒子向量的坐标对应水库每一时段的水位。
  步骤2  按式(3) 计算适应函数值f ( xi ) 与自身的最优值进行比较,若,则用新的适应值取代前一轮的优化解,用新粒子取代前一轮粒子,即。
  步骤3  将每个粒子的最佳适应值与所有粒子的最佳适应值进行比较。若,则用该粒子的最佳适应值取代原有全局最佳适应值,同时保存粒子的当前状态,即:。
  步骤4  判断是否满足迭代停止条件。如为否,则再进行新一轮计算,按文献[ 13 ,14 ]微粒群PSO 算法将粒子进行移动,从而产生新的粒子(即新的解) ,返回步骤2 ;如为是,计算结束。
  2  生成初始离子群和可行域
  为加速收敛,在水库防洪调度方案寻优过程中希望初始微粒群尽可能满足各种约束,故采用以水量平衡方程为限制条件的随机自动生成方式生成初始种群,生成初始粒子群的具体做法如下。
  (1) 粒子位置的生成。①由于qt 影响下一阶段的水位Zt + 1 ,因此先生成qt 。qt 的取值范围为:


  式中,qt ,上、qt ,下、qt ,max分别为水库t 时刻下泄量的上、下限值及允许最大下泄量; qmin 为水库的最小下泄量,一般取0 或最小兴利引用流量;V t 为t 时刻水位的相应库容;V t + 1 ,min 、V t + 1 ,max 分别为t + 1时刻水库水位所能达到的最小、最大库容。若上界< 下界,取下界= 上界,再在该区间内随机生成qt ,得到一个初始值。②在获得qt 的初始值后,即可利用水量平衡方程确定V t + 1 的初始值,即:


  再通过水位—库容曲线确定初始水位。每个粒子即获得一个初始库容变化过程或初始水位变化过程,从而获得初始粒子群。
  (2) 粒子速度的初始化。


  式中,randi 为[ 0 ,1 ]之间的伪随机数。
  3  优化调度计算
  仅给出较为复杂的调度2 的优化调度结果。
  以浑河流域的一场洪水为例,已知预报的入库和下游区间的洪水过程及调洪计算的初始和边界条件。本次洪水下游区间峰高量大,必须考虑下游错峰。因出库流量变幅值在错峰前后很难控制,故本计算不考虑出库流量变幅约束。
  为尽可能消除随机性对算法比较的影响,进行100 次仿真,再取目标函数值的平均值。PSO的参数依文献[14 ]设置:学习因子c1 = c2 = 2.0 ,最大迭代次数Kmax = 1 000 ,惯性权重系数最大值Wmax = 0.9 ,最小值Wmin = 0.4 ,最大速度Vmax =0.1 ,惩罚系数σ1 =σ2 = 105 。为便于比较,将PSO算法仿真100 次计算最优计算结果与常规动态规划法(DP) 计算结果同时列于表1 中,两种算法的结果对比见表2 。由表可知,两种算法的计算结果基本吻合,PSO 算法100 次计算的目标函数值的平均值与动态规划法的计算结果相差不明显( < 1 %) ;但PSO 算法提高了求解速度,不同M值时的计算平均时间比动态规划法的计算时间少得多。
表1  不同M 值下粒子群算法100 次计算的最优结果与动态规划(步长为0.01 m) 的优化结果。


表2  不同M 值下粒子群算法100 次计算目标函数均值与动态规划(0.01 m) 的优化结果对比。


  图1 为PSO 算法仿真100 次计算的目标函数值最优的出流过程与DP 法的出流结果比较。
  由图可看出: ①两种优化调度的水库最大下泄流量都比实际调度小,且出流过程更平缓。虽然实际下游最大组合流量有时较优化调度小,但从整体计算结果看,优化调度后的下游组合流量都能满足下游防洪要求; ②洪峰来临前实际调度过程中基本不泄流,从而使后期下泄流量偏高,这易增加后期下游的防洪压力。
  综上所述,采用PSO 求解流域防洪优化调度问题可行。虽然本次是根据实际洪水过程进行模拟计算,但对有较高短期洪水预报精度的流域依据预报的洪水过程信息和具体的防洪任务, 通过建立和求解PSO 模型,并利用不断更新的洪水预报信息可使水库实际运行过程较好地接近于对洪水的最优控制。


图1  M = 0 、M →∞时两种调度出流结果对照。
  4  结语
  a.将PSO 算法应用于大伙房水库防洪优化调度计算,提出了初始粒子群选取的新方法,可提高收敛速度。
  b.将PSO 算法与动态规划法的计算结果进行比较,发现对同一防洪调度问题,两种方法的优化结果基本吻合,但PSO 算法计算工作量小、易于实现,更有利于多水库联合优化调度中克服“维数灾”问题。
  c.PSO 算法作为一种新型智能优化算法,在国内的研究尚处于初级阶段,算法中的一些参数还缺乏通用指导意义的原则,因而快速准确地寻求参数的取值范围尚待深入研究。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0