1.一种基于两阶段萤火虫编码的机组组合优化方法,其特征在于,包括建立以下机组组合模型:
所述的机组组合模型的目标函数是由发电费用和机组启动费用最小,满足有功平衡约束、旋转备用约束、机组出力上下限约束、机组爬坡约束、机组最小启/停时间约束的条件下建立;
所述的目标函数如下所示,由发电费用和启动费用两部分组成:
其中,发电费用函数如下:
启动费用函数如下:
所述的目标函数中的机组出力及启停变量是模型的决策变量,需满足如下约束条件:
其中,N表示机组数目;T表示调度周期;分别表示第i号机组第t时段的出力及启停情况,U=0表示机组关停,U=1表示机组开启,除是待求的决策变量,其余量均是给定的参数;STi表示机组i的启动费用,Ki,Bi,τi为常数,为机组i在t-1时段连续停机时间;ai,bi,ci是机组i的发电费用系数;分表示t时段系统的负荷及旋转备用需求;Pi,max,Pi,min及分别表示第i号机组的最大、最小技术出力和向上、向下爬坡能力;分别表示第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.根据权利要求1所述的一种基于两阶段萤火虫编码的机组组合的优化方法,其特征在于;所述的步骤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变化,使用阈值函数:
产生一个0到1之间的随机数rand(0,1),且用0或者1表示机组的状态,当f(x'p)大于rand(0,1),机组状态为1;否则为0;所述的rand(0,1)表示[0,1]之间的随机数。
3.根据权利要求1所述的一种基于两阶段萤火虫编码的机组组合的优化方法,其特征在于;所述的步骤3中的旋转备用约束修复策略如下:
若旋转备用约束不满足,则处于关停状态的机组根据经济性优先顺序依次启动,直到旋转备用约束满足;其中机组的经济性优先顺序按照平均煤耗大小确定,平均煤耗越小,经济性越好,则优先顺序越靠前,平均煤耗按下式确定;
式中:Avpi为机组i平均煤耗,f(Pi)为机组i发电成本函数,Pi,max,Pi,min分别为机组i最大、最小出力。
4.根据权利要求1所述的一种基于两阶段萤火虫编码的机组组合的优化方法,其特征在于;所述的步骤4中的最小启/停时间约束修复策略如下:
若旋转备用约束满足,则在调度周期内的每一段间隔都要检查最小启/停时间约束,一旦最小启/停时间约束不再满足,则启用最小启/停时间约束修复策略修补偏差;所述的最小启/停时间约束修复策略为:
对机组i,其最少开启时间为最小关机时间为调度周期为T,若该机组实际关闭时间为则其违反最小关机约束,可将当前关机状态开始之前或结束之后的状态调整为“0”;通过该修复,若该机组违反了最小开机时间约束,则该机组的在违反约束时段的状态变为”1”。
5.根据权利要求1所述的一种基于两阶段萤火虫编码的机组组合的优化方法,其特征在于;所述的步骤4中的第二阶段改进的实数编码萤火虫算法包含如下定义:
吸引度:
在萤火虫算法中,吸引度函数如下:
其中,rpq是两萤火虫p,q之间的距离,β0≤是初始吸引度,γ是吸收系数,m为常数,通常取2;
萤火虫之间的距离:
两萤火虫p和q在分别位置xp和xq,两者间的距离可以定义为笛卡尔或者欧式距离:
其中,xp,s是第p只萤火虫的第s维空间坐标,xq,s是第q只萤火虫的第s维空间坐标,d是总共的坐标维度,q∈{1,2,…Fn};虽然q是随机选择的,但是不等于p,Fn表示总的萤火虫数目;
萤火虫移动:
当萤火虫p被另一只更有吸引力的萤火虫q吸引时,其将发生移动;
式中的β(rpq)×(xp-xq)由萤火虫之间的吸引度β(rpq)决定,α为随机参数,rand是0到1之间均匀分布的随机数;
所述标准实数编码萤火虫算法,包含如下步骤:
1)初始化参数,进入迭代;2)计算萤火虫之间的距离;3)计算并比较萤火虫之间的吸引度;4)萤火虫之间发生移动;5)判断是否达到迭代最大次数,若达到则结束迭代,输出结果;否则转2);
所述的改进的实数萤火虫算法包含如下改进机制:
改进1:个体变异机制
为避免过早陷入局部最优值,在当前代迭代结束后,也即在标准实数萤火虫算法的萤火虫之间发生移动后进行个体变异;假设分别是当前迭代中的最优及最差个体,随机从当前种群中选择3个萤火虫个体Xq1,Xq2,Xq3,q1≠q2≠q3;通过差分变异得到两个新个体:
XMute1,XMute2表示差分变异新个体;表示当前迭代中最优、最差个体;Δ是[0,1]之间的随机数;使用上式中的变异个体,产生下述5个新个体:
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,kmax分别是当前迭代次数和最大迭代次数;α初值在[0,1]之间,随着迭代次数增大,α逐渐减小,控制算法在初始阶段有较强的全局搜索能力,在迭代后期则有较强的局部搜索能力,加快收敛速度。