--基于遗传算法的机组组合问题的建模与求解摘要本文针对当前科技水平不足以有效存储电力的情况下产生的发电机机组组合的问题,考虑负荷平衡、输电线传输容量限制等实际情况产生的约束条件,建立机组组合优化模型,追求发电成本最小。同时采用矩阵实数编码遗传算法(MRCGA)和穷举搜索算法,利用MATLAB7.0.1和C++编程,分别对模型进行求解,并对所得结果进行分析比较,以此来帮助电力部门制定机组启停计划。首先,建立发电成本最小目标函数和各项约束条件的数学表达式。其中机组空载成本和增量成本之和随该机组发电出力增长呈折线关系,在分析计算时为了简便,本文采用一条平滑的二次曲线来近似代替。对于问题1,选取相应的约束条件对目标函数进行约束,从而给出优化模型Ⅰ。由于问题1的求解规模很小,所以采用穷举搜索算法,利用C++编程求解,得到了3母线系统4小时的最优机组组合计划(见表一)。对于问题2,在优化模型Ⅰ的基础上,增加最小稳定运行出力约束、机组启动和停运时的出力约束以及机组最小运行时间和最小停运时间约束这三个约束条件,建立了优化模型II。同时采用遗传算法和穷举搜索算法,利用MATLAB和C++编程,分别对模型进行求解,部分结果如下:发电总成本(单位:元)矩阵实数编码遗传算法6780穷举搜索算法6820在对所得结果进行了分析比较,重新制定了3母线系统4小时最优机组组合计划(见表三)。对于问题3,用IEEE118系统对优化模型II进行测试。由于求解规模巨大,同样采用遗传算法和穷举搜索算法,利用MATLAB和C++编程,分别对模型进行求解,部分结果如下:发电总成本(单位:百万)矩阵实数编码遗传算法2.034穷举搜索算法2.135在对所得结果进行比较时发现对于大规模问题,遗传算法优势明显,将其求解结果作为24小时的最优机组组合计划(见附录)。最后,我们就模型存在的不足之处提出了改进方案,并对优缺点进行了分析。关键字机组组合优化模型矩阵实数编码遗传算法穷举搜索算法一、问题的提出当前的科学技术还不能有效地存储电力,所以电力生产和消费在任何时刻都要相等,否则就会威胁电力系统安全运行。为了能够实时平衡变化剧烈的电力负荷,电力部门往往需要根据预测的未来电力负荷安排发电机组起停计划,在满足电力系统安全运行条件下,追求发电成本最小。在没有电力负荷损耗以及一个小时之内的电力负荷和发电机出力均不变的前提下,假定所有发电机组的发电成本都是由3部分组成:1.启动成本(StartupCost),2.空载成本(Noloadcost),3.增量成本(IncrementalCost)。需要考虑的约束有:1.负荷平衡约束2.系统备用约束3.输电线路传输容量约束4.发电机组出力范围约束5.机组增出力约束6.机组降出力约束。问题1:3母线系统有一个3母线系统,其中有2台机组、1个负荷和3条输电线路,已知4个小时的负荷和系统备用要求。请求出这4个小时的最优机组组合计划。最终结果应该包括总成本、各小时各机组的状态、各小时各机组的发电出力和各小时各机组提供的备用。G1LBus2Bus1Bus0G2Line0-1Line0-2Line1-2问题2:3母线系统在问题1的基础上,考虑发电机组的下列物理特性约束:1.发电机组的稳定出力范围约束2.机组启动时的出力约束3.机组停运时的出力约束4.机组最小运行时间约束5.机组最小停运时间约束。重新制定最优机组组合计划。问题3:IEEE118系统用IEEE-118节点的电力系统对问题2的求解模型进行测试,试求出24个小时的最优机组组合计划。最终结果应该包括总成本、各小时各机组的状态、各小时各机组的发电出力和各小时各机组提供的备用。二、问题的分析机组优化组合和优化启停就是要在满足约束条件的情况下,优化地选定各时段参加运行的机组,求出机组的最佳运行方案,实现发电成本最小。然而,机组组合问题是一个多变量、多约束的混合整数非线性规划问题。针对此类问题的求解,数学类优化方法如线性规划、非线性规划、动态规划等,都存在明显不足之处。而采用智能优化算法对此问题的研究较多,主要包括遗传算法、模拟退火算法、禁忌搜索、人工神经网络、模糊优化等算法。其中模拟退火算法收敛速度慢、禁忌搜索算法对初始解依赖性较强、人工神经网络算法存在网络合适的隐含层数目和节点数目难以确定、模糊优化方法的隶属函数和模糊推理规则的确定较困难。鉴于遗传算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强、适于并行处理及应用范围广等显著特点,本文采用基于矩阵实数编码遗传算法来解决机组组合问题。可以将整个问题分为以下两个任务来完成:一、建立机组组合问题的数学模型二、采用穷举搜索法和遗传算法,利用C++或者MATLAB编程,求解模型,得到最优机组组合计划由于题目中的三个问题所考虑的约束条件复杂程度不同,发电机组数与负荷情况也不相同,本文将三个问题逐一建立模型并求解:问题1根据负荷平衡、系统备用、输电线路传输容量、发电机组出力范围、机组增出力、机组降出力等约束建立优化模型I,采用穷举搜索算法,利用C++编程进行求解。问题2和问题3在问题1的基础上,增加机组启动和停运时的出力、机组最小运行时间和最小停运时间约束条件,建立了优化模型II,采用穷举搜索法和遗传算法,分别利用C++和MATLAB编程进行求解。三、模型假设和符号系统3.1模型假设1.假设系统不存在电力负荷损耗2.假设一个小时之内的电力负荷和发电机出力均不变3.假设参加交叉运算的染色体个数占全体染色体总数的比例为0.4~0.994.假设发生变异的基因位数所占全体染色体的基因总位数的比例为0.0001~0.13.2符号系统itu为机组i在t时段的运行状态,10itu,表示运行,表示停机iS为机组i的启动成本itf为机组i在t时段的发电成本itp为机组i在t时段的出力;jtL为负荷j在t时段的负荷量;maxip为发电机组i的最大出力;tR为t时段系统备用要求;linekp为线路linek上流过的电能;klx为第k根输电线路第l条母线的线性传输因子;,injbuslp为母线l上的注入功率;maxkp为第根输电线路的最大传输容量;minip发电机组最小稳定运行出力;dir为机组i最大减出力;rir为机组i最大增出力;1iT为机组i最小运行时间;2iT为机组i最小停运时间;四、模型的建立与求解4.1模型建立分析4.1.1先考虑目标函数1)空载成本和增量成本观察空载成本和增量成本构成的部分成本随该机组发电出力变化特性图,如图一中折线所示。图一空载成本和增量成本之和随该机组发电出力增长走势图在分析计算时为了简便,通常用一条平滑曲线来近似代替有起伏的部分成本特性,如图一中平画曲线所示。当n段直线近似表示时,部分成本特性可表示为2ititiitiitifpapbpc(1)2)启动成本11itiituuS(2)其中:itu为机组i在t时段的运行状态,10itu,表示运行,表示停机iS为机组i的启动成本3)目标函数机组组合的目的是针对在指定的周期内,满足系统负荷、备用容量、机组最小时间和最小停机时间等限制,优化确定各机组的启停机计划和优化分配其发电负荷,使发电总费用最小。因此,要以机组的费用最小为依据建立相应的目标函数。设所研究的计划周期为T,机组台数为n,则该问题的目标函数可以表示为:111min1TnititititiittiFufpuuS(3)其中:itf为机组i在t时段的发电成本4.1.2再考虑约束条件1)负荷平衡约束任何时段,电力负荷之和必须等于发电机发电出力之和。11nmititjtijupL(4)其中:itu为机组i在t时段的运行状态,10itu,表示运行,表示停机;itp为机组i在t时段的出力;jtL为负荷j在t时段的负荷量;2)系统备用约束任何时段,发电机的备用容量之和必须大于系统备用要求。max1nitiittiuppR(5)其中:maxip为发电机组i的最大出力;tR为t时段系统备用要求;3)输电线路传输容量约束线路传输的电能必须在它的传输容量范围内。,max0Nlinekklinjbuslklpxpp(6)其中:linekp为线路linek上流过的电能;klx为第k根输电线路第l条母线的线性传输因子;,injbuslp为母线l上的注入功率;maxkp为第根输电线路的最大传输容量;4)发电机组出力范围约束与稳定出力范围约束处于运行状态的发电机组的发电出力必须小于其最大发电出力,同时必须大于其最小稳定运行出力。minmaxiitippp(7)其中:minip发电机组最小稳定运行出力;5)机组增降出力约束发电机组在增加发电出力时,增加出力的速度要小于其最大增出力;发电机组在减少发电出力时,减少出力的速度要小于其最大减出力。111diitriitrppr(8)其中:dir为机组i最大减出力;rir为机组i最大增出力;6)机组启动和停运时的出力约束当机组从停运状态变为运行状态时,机组在该小时的发电出力必须为其最小稳定运行出力,且当机组从运行状态变为停运状态时,机组在该小时的发电出力必须为其最小稳定运行出力。min11itiititititppuuuu如果=0且=1;或=1且=0(9)7)机组最小运行时间和最小停运时间约束机组每次启动后,连续运行时间至少为该台机组的最小运行时间。机组每次停运后,连续停运时间至少为该台机组的最小停运时间。11111ititijiititjtTuuuuT(10)21211itititijiitjtTuuuuT(11)其中:1iT为机组i最小运行时间;2iT为机组i最小停运时间;4.2模型及其求解问题11)优化模型Ⅰ问题1中的3母线系统仅考虑负荷平衡约束系统备用约束、输电线路传输容量约束、发电机组出力范围约束与稳定出力范围约束和机组增降出力约束,所建优化方程模型如下。111min1TnititititiittiFufpuuS(12).st11max1,max0max1..1101nmititjtijnitiitiNlinekklinjbuslklitidiitriititupLuppRstpxpppprppru为或者(13)其中:itf为机组i在t时段的发电成本;2ititiitiitifpapbpciS为机组i的启动成本;2)优化模型Ⅰ的求解算法机组组合问题在数学规划上属于NP完全问题,任何NP完全问题只有通过列举所有可能的组合,才能得到最优解,即采用穷举搜索法。由于问题1的求解规模不大,所以该问题将采用穷举搜索法对模型进行求解。我们设置一计数器T(1234T、、、)用以记录机组已运行的时间。Step1.读取各机组和负荷的原始数据。另1T。Step2.设置机组1的第T小时的出力大小(从小到大依次搜索,跨度为1),使其出力大小的变化满足增出力约束和降出力约束。Step3.判断机组1是否满足其出力范围约束。若满足则继续下一步,否则,重复步骤2。Step4.根据系统负荷平衡约束,求出机组2的出力大小。Step5.判断机组2出力大小的变化和出力范围是否满足增出力约束、降出力约束和出力范围约束。若满足则继续下一步,否则重复步骤2、3、4。Step6.判断机组1和机组2是否满足系统备用约束,若满足则继续下一步,否则重复步骤2、3、4、5。Step7.判断机组1和机组2是否满足输电线路传输容量约束,若满足继续下一步,否则重复步骤2、3、4、5、6。Step8.判断计数器T是否为4,若是则输出该种情况下两台机组各时段出力大小,否则重复步骤2、3、4、5、6、7,另1TT。直到所有的情况搜索完毕为止。执行完该算法,可以得到一最优机组组合计划。3)模型求解与分析我们根据上面的算法步骤,我们编C+