一种基于两阶段萤火虫编码的机组组合优化方法与流程

文档序号:14686154发布日期:2018-06-14 23:33
本发明涉及电力系统调度运行领域,特别涉及一种基于两阶段萤火虫编码的机组组合优化方法。
背景技术
:机组组合(unitcommitment,UC)是电力系统运行的一个复杂大规模混合整数优化问题。其目的是在某段调度周期内和一定的约束条件下,合理安排机组的启停状态和机组出力,使总的发电费用最低。随着电力系统规模的日益扩大,电力系统的经济运行越来越重要,如何更经济快速地解决机组的负荷分配、延长机组使用寿命成为众多学者关注的问题。国内外学者提出应用优先顺序法、局部搜索法、动态规划(DP)、混合整数规划(MIP)(分支定界法、benders分解法)、拉格朗日松弛(LR)等方法解决UC问题。已有研究表明对大规模UC问题,这些方法都存在不同程度的缺点,诸如优先顺序和局部搜索常常难以找到最优解;DP存在“维数灾”难点;MIP法计算时间随机组规模增加呈指数增长;LR法存在对偶间隙和收敛稳定性问题。随着人工智能技术的发展,智能优化方法如粒子群、遗传、蚁群算法等也相继被应用UC问题的求解。萤火虫算法是剑桥大学Dr.Yang在2010年提出的一种新颖的群智能算法,具有收敛速度快、全局寻优能力强的特点。标准萤火虫算法只能解决连续变量优化问题,不能直接用于含离散变量的机组组合问题。对标准萤火虫算法进行离散化编码处理后可以求解机组启停的离散问题,实数编码的萤火虫可以求解机组经济分配的连续变量优化问题,通过二阶段编码,可以实现萤火虫算法快速准确的求解机组组合问题。技术实现要素:本发明针对上述存在的问题,提供一种基于二阶段萤火虫编码的机组组合优化方法,首先确定机组组合模型,其次针对标准萤火虫的搜索机制进行变异和自适应改进,然后对萤火虫进行里散化处理求解机组启停问题,接着用实数编码萤火虫求解负荷最优分配子问题,两个问题交替求解,最终获得机组组合的完整解。一种基于两阶段萤火虫编码的机组组合优化方法,包括建立以下机组组合模型:所述的机组组合模型的目标函数是由发电费用和机组启动费用最小,满足有功平衡约束、旋转备用约束、机组出力上下限约束、机组爬坡约束、机组最小启/停时间约束的条件下建立;所述的目标函数如下所示,由发电费用和启动费用两部分组成:minF(P,U)=Σi=1NΣt=1T(f(Pit)Uit+STiUit(1-Uit-1))]]>其中,发电费用函数如下:f(Pit)=ai+bi×Pit+ci×(Pit)2启动费用函数如下:STi=Ki+Bi(1-eTioff(t-1)τi)]]>所述的目标函数中的机组出力及启停变量是模型的决策变量,需满足如下约束条件:1)Σi=1NPitUit=PDt2)Σi=1NUitPi,max≥PDt+SDt3)Pi,minUit≤Pit≤Pi,maxUit4)RiDown≤Pit-Pit-1≤Riup5)[Tion(t-1)-Tion](Uit-1-Uit)≥06)[Tioff(t-1)-Tioff](Uit-Uit-1)≥0,t∈(1,2,...T)]]>其中,N表示机组数目;T表示调度周期;Pit,分别表示第i号机组第t时段的出力及启停情况,U=0表示机组关停,U=1表示机组开启,除Pit,是待求的决策变量,其余量均是给定的参数;STi表示机组i的启动费用,Ki,Bi,τi为常数,Tioff(t-1)为机组i在t-1时段连续停机时间;ai,bi,ci是机组i的发电费用系数;分表示t时段系统的负荷及旋转备用需求;Pi,max,Pi,min及分别表示第i号机组的最大、最小技术出力和向上、向下爬坡能力;Tion,Tioff分别表示第i号机组的最少开启、关停时间;包括如下步骤:步骤1:初始化模型中的参数,标记迭代次数cc=1;步骤2:初始化离散种群;第一阶段离散萤火虫编码,在多维解空间中随机初始化种群Fn代表种群规模,每个解有D维,D代表待优化变量数目,此模型中D=N×T,N表示机组数目,T表示调度周期;编码的每一位分别代表机组在某时段的开/停状态;步骤3:初始化机组启停状态及相应机组的最大出力,校核旋转备用约束是否满足,若满足,执行下一步;若不满足,执行旋转备用约束修复策略,继续步骤3校核旋转备用约束;步骤4:校核机组最小启/停时间约束是否满足,若满足,执行下一步;若不满足,执行最小启/停时间约束修复策略,再转步骤3;步骤5:由步骤3确定了满足旋转备用约束,步骤4确定了满足机组最小启/停时间约束,所述的机组的启/停变量由步骤3和4确定,使用第二阶段改进的实数编码萤火虫算法进行经济调度,确定各机组的出力,所述的有功平衡约束、机组出力上下限约束、机组爬坡约束在该步骤中处理;即以发电费用作为基本目标函数,将有功平衡约束、机组出力上下限约束、机组爬坡约束以罚函数的形式加入基本目标函数,优化得到各机组的出力;步骤6:离散种群的适应度计算;在所述步骤3,步骤4确定的机组启停状态及步骤5确定的机组出力基础上,计算每一个萤火虫位置相对应的目标函数,并进行适应度评价;所述步骤适应度计算,为避免过早收敛,使用如下适应度函数Fitness=w[1-cost%],其中cost表示当前机组组合的费用,Max(cost),Min(Cost)为当前最大、最小费用;所述个体最大、最小及当前费用按照模型中的目标函数计算;个体成本越小,适应度越大,常数W大于0;当适应度最大时得到相应的最优成本及机组组合结果;步骤7:保存当前得到的最优解,若达到最大迭代次数,则终止迭代,输出结果;否则,迭代次数加1,cc=cc+1,对当前离散编码对应的实数编码进行更新,将更新后实数编码离散化为“01”编码,转步骤3。进一步的,所述的步骤2中所述的离散萤火虫编码包括先实数编码、再离散化两步,步骤如下:第一步实数编码,对种群中每一个萤火虫的D维变量,以[0,1]间随机实数初始化;第二步离散化具体如下:在二进制萤火虫算法中,当两萤火虫间距离值在-1到1之间变化时,则吸引度的取值在0.3679~2.7183之间变化,萤火虫移动后的位置x'p将在-2.2180到4.2180之间变化;若由0和1表示机组的启停状态,由阈值判断将实数变量映射为0,1离散变量;如果x'p大于阈值,则该个体选择为“1”,反之则选择为‘’0“;阈值水平从0到1变化,使用阈值函数:f(xp′)=tanh(|xp′|)=e(2×|xp′|)-1e(2×|xp′|)+1]]>产生一个0到1之间的随机数rand(0,1),且用0或者1表示机组的状态,当f(x'p)大于rand(0,1),机组状态为1;否则为0;所述的rand(0,1)表示[0,1]之间的随机数;进一步的,所述的步骤3中的旋转备用约束修复策略如下:若旋转备用约束不满足,则处于关停状态的机组根据经济性优先顺序依次启动,直到旋转备用约束满足;其中机组的经济性优先顺序按照平均煤耗大小确定,平均煤耗越小,经济性越好,则优先顺序越靠前,平均煤耗按下式确定。AvPi=∫Pi,minPi,maxf(Pi)dPiPi,max-Pi,min]]>式中:Avpi为机组i平均煤耗,f(Pi)为机组i发电成本函数,Pi,max,Pi,min分别为机组i最大、最小出力。进一步的,所述的步骤4中的最小启/停时间约束修复策略如下:若旋转备用约束满足,则在调度周期内的每一段间隔都要检查最小启/停时间约束,一旦最小启/停时间约束不再满足,则启用最小启/停时间约束修复策略修补偏差;所述的最小启/停时间约束修复策略为:启停修复机制为:对机组i,其最少开启时间为最小关机时间为调度周期为T,若该机组实际关闭时间为则其违反最小关机约束,可将当前关机状态开始之前或结束之后的状态调整为“0”;通过该修复,若该机组违反了最小开机时间约束,则该机组的在违反约束时段的状态变为”1”。进一步的,所述的步骤4中的第二阶段改进的实数编码萤火虫算法包含如下定义:吸引度:在萤火虫算法中,吸引度函数如下:β(r)=β0e-γrpqm,m≥1]]>其中,rpq是两萤火虫p,q之间的距离,β0≤是初始吸引度,γ是吸收系数,m为常数,通常取2;萤火虫之间的距离:两萤火虫p和q在分别位置xp和xq,两者间的距离可以定义为笛卡尔或者欧式距离:rpq=||xp-xq||=Σk=1d(xp,s-xq,s)2]]>其中,xp,s是第p只萤火虫的第s维空间坐标,xq,s是第q只萤火虫的第s维空间坐标,d是总共的坐标维度,q∈{1,2,…Fn};虽然q是随机选择的,但是不等于p,Fn表示总的萤火虫数目;萤火虫移动:当萤火虫p被另一只更有吸引力的萤火虫q吸引时,其将发生移动;xp′=xp+β(rpq)×(xp-xq)+α(rand-12)]]>式中的β(rpq)×(xp-xq)由萤火虫之间的吸引度β(rpq)决定,α为随机参数,rand是0到1之间均匀分布的随机数;所述标准实数编码萤火虫算法,包含如下步骤:1)初始化参数,进入迭代;2)计算萤火虫之间的距离;3)计算并比较萤火虫之间的吸引度;4)萤火虫之间发生移动;5)判断是否达到迭代最大次数,若达到则结束迭代,输出结果;否则转2);所述的改进的实数萤火虫算法包含如下改进机制:改进1:个体变异机制为避免过早陷入局部最优值,在当前代迭代结束后,也即在标准实数萤火虫算法的萤火虫之间发生移动后进行个体变异;假设分别是当前迭代中的最优及最差个体,随机从当前种群中选择3个萤火虫个体Xq1,Xq2,Xq3,q1≠q2≠q3;通过差分变异得到两个新个体:XMute1=Xq1+Δ×(Xq2-Xq3)XMute2=XMute1+Δ×(XBestIter-XWorstIter)]]>XMute1,XMute2表示差分变异新个体;表示当前迭代中最优、最差个体;Δ是[0,1]之间的随机数;使用上式中的变异个体,产生下述5个新个体:xImp1,j=xMute1,j,ifκ1≤κ2xBest,j,ifκ1>κ2]]>xImp2,j=xMute1,j,ifκ3≤κ2xj,ifκ3>κ2]]>xImp3,j=xBest,j,ifκ4≤κ3xj,ifκ4>κ3]]>xImp4,j=xMute1,j,ifκ5≤κ4xMute2,j,ifκ5>κ4]]>XImp5=ψ×XWorst+ζ×(XBest-XWorst)xImp1,j,xImp2,j…xImp4j分别表示第1至4个新个体的第j维元素;XImp5表示第5个新个体xMute1,j,xMute2,j,xBest,j,xj分别表示各自向量的第j维元素。κ1,κ2,κ3,κ4,κ5,ψ和ζ是[0,1]之间的随机数;分别计算5个新个体的目标函数,若其中最小目标函数小于第i个萤火虫的目标函数值,则用其替代第i个萤火虫的位置;改进2:参数自适应变化机制标准实数萤火虫算法中的参数α,控制算法在对邻域萤火虫位置未知时进行随机搜索;α的大小控制着随机搜索的范围,较大的α值导致在大范围全局搜索,较小的α则进行局部搜索;合适的α值设定将平衡算法在全局和局部搜索上的表现;本方法提出一种随迭代的自适应调整的α值控制方式;αIter+1=(12kmax)1/kmaxαIter]]>Iter,kmax分别是当前迭代次数和最大迭代次数;α初值在[0,1]之间,随着迭代次数增大,α逐渐减小,控制算法在初始阶段有较强的全局搜索能力,在迭代后期则有较强的局部搜索能力,加快收敛速度。本发明效益:本发明提供一种基于两阶段萤火虫编码的机组组合优化方法,可以提高机组组合的求解速度和全局寻优能力,为电力系统调度人员提供更优的决策支持。附图说明图1是本方法的整体流程图;图2是离散种群初始化示意图;图3是实数编码离散化阈值示意图;图4是启停约束修复示意图。具体实施方式下面是本发明的一个典型应用案例,用于经典的10机系统24小时的机组组合优化,该系统经常用来测试、对比不同的机组组合算法。表1是涉及到的机组参数,表2是24小时的负荷数据和系统备用数据。表1表1中a,b,c分别为机组的煤耗系数,B,τ,k为启停费用系数;1-10表示机组序号。表2一种基于两阶段萤火虫编码的机组组合的优化方法,包括建立以下机组组合模型:所述的机组组合模型的目标函数是由发电费用和机组启动费用最小,满足有功平衡约束、旋转备用约束、机组出力上下限约束、机组爬坡约束、机组最小启/停时间约束的条件下建立;所述的目标函数如下所示,由发电费用和启动费用两部分组成:minF(P,U)=Σi=1NΣt=1T(f(Pit)Uit+STiUit(1-Uit-1))]]>其中,发电费用函数如下:f(Pit)=ai+bi×Pit+ci×(Pit)2启动费用函数如下:STi=Ki+Bi(1-eTioff(t-1)τi)]]>所述的目标函数中的机组出力及启停变量是模型的决策变量,需满足如下约束条件:1)Σi=1NPitUit=PDt2)Σi=1NUitPi,max≥PDt+SDt3)Pi,minUit≤Pit≤Pi,maxUit4)RiDown≤Pit-Pit-1≤Riup5)[Tion(t-1)-Tion](Uit-1-Uit)≥06)[Tioff(t-1)-Tioff](Uit-Uit-1)≥0,t∈(1,2,...T)]]>其中,N表示机组数目;T表示调度周期;Pit,分别表示第i号机组第t时段的出力及启停情况,U=0表示机组关停,U=1表示机组开启,除Pit,是待求的决策变量,其余量均是给定的参数;STi表示机组i的启动费用,Ki,Bi,τi为常数,Tioff(t-1)为机组i在t-1时段连续停机时间;ai,bi,ci是机组i的发电费用系数;分表示t时段系统的负荷及旋转备用需求;Pi,max,Pi,min及分别表示第i号机组的最大、最小技术出力和向上、向下爬坡能力;Tion,Tioff分别表示第i号机组的最少开启、关停时间;本方法实施流程见图1,具体如下:步骤1:初始化模型中的参数,其中机组数据见表1,负荷及备用数据见表2标记迭代次数cc=1;步骤2:初始化离散种群。第一阶段离散萤火虫编码,在多维解空间中随机初始化种群Fn代表种群规模,每个解X有D维,D代表待优化变量数目,此模型中D=N×T,N表示机组数目,T表示调度周期,编码的每一位分别代表机组在某时段的开/停状态,如图2所示。所述的离散萤火虫编码包括先实数编码、再离散化两步,步骤如下:第一步实数编码,对种群中每一个萤火虫的D维变量,以[0,1]间随机实数初始化;第二步离散化具体如下:在二进制萤火虫算法中,当两萤火虫间距离值在-1到1之间变化时,则吸引度的取值在0.3679~2.7183之间变化,萤火虫移动后的位置x'p将在-2.2180到4.2180之间变化;若由0和1表示机组的启停状态,由阈值判断将实数变量映射为0,1离散变量;如果x'p大于阈值,则该个体选择为“1”,反之则选择为‘’0“;阈值水平从0到1变化,使用阈值函数如图3所示:f(xp′)=tanh(|xp′|)=e(2×|xp′|)-1e(2×|xp′|)+1]]>产生一个0到1之间的随机数rand(0,1),且用0或者1表示机组的状态,当f(x'p)大于rand(0,1),所述的rand(0,1)表示[0,1]之间的随机数,机组状态为1否则为0;步骤3:初始化机组启停状态及相应机组的最大出力,校核旋转备用约束是否满足,若满足,执行下一步;若不满足,执行旋转备用约束修复策略,继续步骤3校核旋转备用约束;所述的旋转备用约束修复策略如下:若旋转备用约束不满足,则处于关停状态的经济性较好机组识别出来并依次启动,直到旋转备用约束满足。其中机组的经济性优先顺序按照平均煤耗大小确定,平均煤耗越小,经济性越好,则优先顺序越靠前,平均煤耗按下式确定。AvPi=∫Pi,minPi,maxf(Pi)dPiPi,max-Pi,min]]>式中:Avpi为机组i平均煤耗,f(Pi)为机组i发电成本函数,Pi,max,Pi,min分别为机组i最大、最小出力。步骤4:校核机组最小启/停时间约束是否满足,若满足,执行下一步;若不满足,执行最小启/停时间约束修复策略,再转步骤3;所述的启停时间约束修复策略如下:如图4所示,若旋转备用约束满足,则在调度周期内的每一段间隔都要检查最小启/停约束,一旦最小启/停时间约束不再满足,则启用最小启/停时间约束修复策略修补偏差。对机组i,其最少开启时间为最小关机时间为调度周期为T,若该机组实际关闭时间为则其违反最小关机约束,可将当前关机状态开始之前或结束之后的状态调整为“0”;通过该修复,若该机组违反了最小开机时间约束,则该机组的在违反约束时段的状态变为”1”。步骤5:由步骤3确定了满足旋转备用约束,步骤4确定了满足机组最小启/停时间约束,所述的机组的启/停变量由步骤3和4确定,使用第二阶段改进的实数编码萤火虫算法进行经济调度,确定各机组的出力,所述的有功平衡约束、机组出力上下限约束、机组爬坡约束在该步骤中处理;即以发电费用作为基本目标函数,将有功平衡约束、机组出力上下限约束、机组爬坡约束以罚函数的形式加入基本目标函数,优化得到各机组的出力;所述实数萤火虫算法包含如下定义:吸引度:在萤火虫算法中,吸引度函数如下:β(r)=β0e-γrpqm,m≥1]]>rpq是两萤火虫p,q之间的距离,β0≤是初始吸引度,γ是吸收系数,m通常取2;萤火虫之间的距离:两萤火虫p和q在分别位置xp和xq,两者间的距离可以定义为笛卡尔或者欧式距离:rpq=||xp-xq||=Σk=1d(xp,s-xq,s)2]]>xp,s是第p只萤火虫的第s维空间坐标,xq,s是第q只萤火虫的第s维空间坐标,d是总共的坐标维度,q∈{1,2,…Fn};虽然q是随机选择的,但是不等于p,Fn表示总的萤火虫数目;萤火虫移动:当萤火虫p被另一只更有吸引力(更亮)的萤火虫q吸引时,其将发生移动。xp′=xp+β(rpq)×(xp-xq)+α(rand-12)]]>式中的β(rpq)×(xp-xq)由萤火虫之间的吸引度β(rpq)决定,第3部分引入了随机参数α,rand是0到1之间均匀分布的随机数。所述标准实数编码萤火虫算法是已有技术,包含如下步骤:1)初始化参数,进入迭代;2)计算萤火虫之间的距离;3)计算并比较萤火虫之间的吸引度;4)萤火虫之间发生移动;5)判断是否达到迭代最大次数,若达到则结束迭代,输出结果;否则转2)。所述的改进的实数萤火虫算法包含如下改进机制:改进1:个体变异机制为避免过早陷入局部最优值,在当前代迭代结束后,也即在标准实数萤火虫算法的萤火虫之间发生移动后进行个体变异;假设分别是当前迭代中的最优及最差个体,随机从当前种群中选择3个萤火虫个体Xq1,Xq2,Xq3,q1≠q2≠q3;通过差分变异得到两个新个体:XMute1=Xq1+Δ×(Xq2-Xq3)XMute2=XMute1+Δ×(XBestIter-XWorstIter)]]>XMute1,XMute2表示差分变异新个体;表示当前迭代中最优、最差个体;Δ是[0,1]之间的随机数;使用上式中的变异个体,产生下述5个新个体:xImp1,j=xMute1,j,ifκ1≤κ2xBest,j,ifκ1>κ2]]>xImp2,j=xMute1,j,ifκ3≤κ2xj,ifκ3>κ2]]>xImp3,j=xBest,j,ifκ4≤κ3xj,ifκ4>κ3]]>xImp4,j=xMute1,j,ifκ5≤κ4xMute2,j,ifκ5>κ4]]>XImp5=ψ×XWorst+ζ×(XBest-XWorst)xImp1,j,xImp2,j…xImp4j分别表示第1至4个新个体的第j维元素;XImp5表示第5个新个体xMute1,j,xMute2,j,xBest,j,xj分别表示各自向量的第j维元素。κ1,κ2,κ3,κ4,κ5,ψ和ζ是[0,1]之间的随机数;分别计算5个新个体的目标函数,若其中最小目标函数小于第i个萤火虫的目标函数值,则用其替代第i个萤火虫的位置;改进2:参数自适应变化机制标准实数萤火虫算法中的参数α,控制算法在对邻域萤火虫位置未知时进行随机搜索;α的大小控制着随机搜索的范围,较大的α值导致在大范围全局搜索,较小的α则进行局部搜索;因此,合适的α值设定将平衡算法在全局和局部搜索上的表现;因此,提出一种随迭代的自适应调整的α值控制方式;αIter+1=(12kmax)1/kmaxαIter]]>Iter,kmax分别是当前迭代次数和最大迭代次数。α初值在[0,1]之间,随着迭代次数增大,α逐渐减小,控制算法在初始阶段有较强的全局搜索能力,在迭代后期则有较强的局部搜索能力,加快收敛速度。步骤6:离散种群的适应度计算。在所述步骤3,步骤4确定的机组启停状态及步骤5确定的机组出力基础上,计算每一个萤火虫位置相对应的目标函数,并进行适应度评价;所述步骤适应度计算,为避免过早收敛,使用如下适应度函数Fitness=w[1-cost%],其中cost表示当前机组组合的费用,Max(cost),Min(Cost)为当前最大、最小费用所述个体最大、最小及当前费用按照模型中的目标函数计算。个体成本越小,适应度越大,常数W大于0。当适应度最大时得到相应的最优成本及机组组合结果。步骤7:保存当前得到的最优解,若达到最大迭代次数,则终止迭代,输出结果;否则,迭代次数加1,cc=cc+1,对当前离散编码对应的实数编码进行更新,将更新新后实数编码离散化为“01”编码,转步骤3。在惠普Intel酷睿i3双核笔记本上用matlab编程,本发明方法与现有的一些经典算法求解10机系统的煤耗及耗时如表3。表3算法煤耗成本/t标煤求解时间/s拉格朗日松弛81245.555.6奔德斯分解79908.38.9启发式粒子群81118.333.2遗传算法79807.028.4改进离散粒子群78967.95.7改进双重粒子群79665.814.3蚁群—粒子群混合算法79010.116.8本方法78430.22.5由表3结果可知,本发明的方法求解得到的煤耗成本最小,耗费的时间最短,有助于调度机构进行机组组合计划制定,具有很好的推广意义。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1