发电机组调度建模分析课程设计.doc
运筹学课程设计论文题目:发电机组调度建模分析 目 录摘要- 1 -关键词- 1 -一、问题的重述- 1 -二、问题的分析- 1 -三、模型假设和符号系统- 2 -3.1模型假设- 2 -3.2符号系统- 2 -四、模型的建立与分析- 3 -4.1单个时段经济调度模型的建立- 3 -4.1.1 目标函数- 3 -4.1.2 约束条件- 3 -4.2动态经济调度模型的建立- 4 -4.2.1 目标函数- 4 -4.2.2 约束条件- 5 -4.3 机组组合模型的建立- 6 -4.3.1目标函数- 6 -4.3.2 约束条件- 6 -五、模型的求解- 7 -5.1 单个时段经济调度模型的求解- 7 -5.2 动态经济调度模型的求解- 7 -5.3 机组组合模型的求解- 8 -六、模型求解结果的分析- 9 -6.1 单个时段经济调度模型求解结果的分析- 9 -6.2 动态经济调度模型求解结果的分析- 10 -6.3 机组组合模型求解结果的分析- 12 -七、模型的改进及评价- 13 -7.1 模型的改进- 13 -7.2 模型的评价- 14 -参考文献:- 14 -附录- 14 -附录1:机组的相关参数- 15 -附录2:负荷- 15 -附录3:求解程序(MATLAB和CPLEX)- 16 -附录4:求解结果- 17 -摘要:本文对电力系统中的发电部分做了简化与抽象,以三台机组组为例由浅入深地建立了三个数学模型模拟实际情况,利用线性规划的思想求得了实现最小成本的机组配置,使用了CPLEX,EXCEL和MATLAB等软件参与计算。对于问题一,建立了某一个时刻机组的配置安排模型,其中,机组的成本与出力成线性关系。根据实际的需求和机组本身的参数建立线性约束方程求得最优解,为经济调度问题。对于问题二,在问题一的基础上,研究24个连续时段的机组的配置安排,为简化问题和符合实际情况,采用阶梯函数进行用电量的拟合,而且结合了机组的爬坡速率这一约束条件,求得了24个连续时段中机组的最优配置,为动态经济调度问题。对于问题三,在问题二的基础上,增加了机组的启停约束,来更好地模拟实际情况。为简化模型,设机组的启动与停止都为瞬时过程。最后,我们就模型存在的不足之处提出了改进方案,并对优缺点进行了分析。关键词:机组组合 优化模型 线性规划一、问题的重述现有三台不同参数的机组(如火电机组),设计一数学模型实现最优化经济调度。问题一:给定某时刻负荷需求,根据每台机组的参数(见附录1),调整各机组的出力方案,使机组的总出力满足负荷需求,每一台机组保证在其出力范围内进行最优化经济调度。问题二:根据24个连续时段中负荷需求的变化(见附录2),根据跟定的机组爬坡速率约束,调整机组配置,求得每台机组的出力变化最优动态调度方案。问题三:在问题二的基础上增加机组的启停约束,即机组的出力可以为零,来进一步减少成本,然后求得每台机组的出力变化最优动态调度方案。二、问题的分析机组优化组合和机组启停就是要在满足约束条件的情况下,优化的选择各时段参加运行的机组,求出机组的最佳运行方案,实现发电成本最小(此处不考虑发电过程中的各种能量损失,而成本仅为燃料消耗所需成本)。然而,机组组合问题是一个多变量、多约束的复杂问题。这个问题我们应用混合整数规划的方法,基于线性规划来解决,并利用计算机编写程序解出答案。我们将整个问题分为两个任务:第一个任务,建立机组组合问题的数学模型。第二个任务是编写程序,求解此数学模型,得到最优机组组合计划。由于题目中的三个问题所考虑的约束条件复杂程度不同,机组运行情况和负载情况也不相同,我们将三个问题逐一建立数学模型,编程求解。问题一:单个时段经济调度在一瞬时下,机组组功率等都为一瞬时值,运用线性规划求出此时的最优机组组合。问题二:动态经济调度24个时段内,各个机组组功率等参数随时间不断发生动态变化,运用动态规划的思路解决此问题。问题三:机组组合引入变量表示第台机组在时段的运行状态,表示机组正在运行,表示机组处于停机状态。各机组在时段时,运行状态未知。此问题运用混合整数规划求解。三、模型假设和符号系统3.1模型假设1.假设系统不存在电力传输损耗。2.假设全时段之内的电力负荷和机组出力均为阶梯函数变化形式。3.假设负荷需求始终不大于三台机组的最大出力之和。4.在问题一,问题二中,假设三台机组都运行且出力大于或等于其最小出力,问题三中机组的出力可以为零,但不可大于零且小于其三台机组中的最小出力。5.假设负荷需求的变化率总是小于三台机组的最大爬坡速率之和。6.在问题三中,假设机组启动或停止为瞬时过程,且不存在启动或停止的次数限制,不产生额外成本,但在一个时段内只能是一种状态不能变化。3.2符号系统:第台机组发电功率:第台机组的最小功率限制:第台机组的最大功率限制:第个用户消耗的功率:第台机组燃料消耗的成本:所有机组总的燃料消耗成本,:第台机组的爬坡速率:第台机组在时段的发电状态,:下标,表示在时段的量,如表示在时段第台机组的出力四、模型的建立与分析4.1单个时段经济调度模型的建立4.1.1 目标函数先考虑一台机组的出力和成本的关系,查阅资料可知,其关系可由线性函数拟合,图像为 图一 机组发电成本与出力的一次函数关系与的关系即可表示为 其中:为常数; 为第台机组燃料消耗的成本; 为第台机组发电功率机组组合的目的是针对在指定的周期内,满足各种约束,优化确定各机组的出力的并且使发电总费用最小。因此,要以机组的费用最小为依据建立相应的目标函数,即 其中,为所有机组总的燃料消耗成本。4.1.2 约束条件首先考虑平衡条件,即机组出力之和等于负荷需求之和,即其中:为第个用户消耗的功率。然后考虑机组约束,即每一台机组的发电功率要求大于或等于其最小发电功率且小于等于其最大发电功率,即 其中:为第台机组的输出功率; 为第台机组的最小功率限制; 为第台机组的最大功率限制。综上,单个时段经济调度的数学模型建立如下:4.2动态经济调度模型的建立4.2.1 目标函数动态经济调度的目标函数与单个时段经济调度基本相同,仅仅多了时段这一维度,所以在第个时段中,第台机组出力和成本的关系为其中:为常数; 为第台机组在第个时段的燃料消耗的成本; 为第台机组在第个时段的发电功率。一个时段机组的成本为 所以要使全部时段,所有机组消耗的总成本最低,目标函数即为 其中,为所有机组在所有时段内总的燃料消耗成本。 4.2.2 约束条件 同单个时段经济调度,首先考虑平衡条件,即要求在每一个时段,机组出力之和等于负荷需求之和,即 由上式显然可推得在所有时段中,发电量之和等于负荷需求之和,即 然后,要求在每一个时段内每一台机组的发电功率要求大于或等于其最小发电功率且小于等于其最大发电功率,即 其中:为第台机组在第个时段中的输出功率; 为第台机组的最小功率限制; 为第台机组的最大功率限制。 另外,在本问题中,存在着机组的爬坡速率这一约束,发电机组的爬坡速率即为每台机组单位时段内能增加或减少的出力。假定第台机组的爬坡速率为,所以存在约束 综上,动态经济调度的数学模型建立如下:4.3 机组组合模型的建立 4.3.1目标函数 机组组合的目标函数与动态经济调度的目标函数基本完全相同,只是的前面要乘一个启停因子(具体介绍见4.3.2),即 4.3.2 约束条件 首先还是考虑平衡条件,即要求在每一个时段,机组出力之和等于负荷需求之和,与动态经济调度的不同之处是增加了机组的启停约束,即机组的出力可以为零,为此,引入启停因子,即 所以,在每一个时段中,平衡条件变为 由上式显然可推得在所有时段中,发电量之和等于负荷需求之和,即 同样,要求在每一个时段内每一台机组(若在启动状态下)的发电功率要求大于或等于其最小发电功率且小于等于其最大发电功率,即 最后,若在这一时段和下一时段某一台机组始终为启动状态,则加入爬坡速率这一约束,即 综上,机组组合的数学模型建立如下:五、模型的求解5.1 单个时段经济调度模型的求解 在某一个时段负荷需求为700MW时,调用附录三中的程序,求得机组分配结果如下。机组123出力/MW20280400 此时,机组发电的的最小成本元。5.2 动态经济调度模型的求解 在连续24个时段中根据负荷需求的变化(见附录二)并加入了机组爬坡约束后,调用附录三中的程序,求得机组出力分配结果如下。(单位:MW)机组时段123456120.020.020.020.020.020.02111.435.035.035.035.035.03239.4169.460.9117.5147.4175.0机组时段789101112120.020.020.020.020.020.0235.035.050.2120.960.635.03232.5345.7400.0400.0400.0355.5机组时段131415161718120.020.020.020.020.020.0235.035.035.035.040.092.93294.6284.5345.2370.5400.0400.0机组时段192021222324120.020.020.560.530.020.02167.0247.0327.0351.4271.4191.43388.0400.0400.0400.0273.6133.6在24个连续时段中机组发电的的最小总成本元。5.3 机组组合模型的求解 在连续24个时段中根据负荷需求的变化(见附录二)并加入了机组爬坡和启停约束后,调用附录三中的程序,求得机组出力分配结果如下。(单位:MW)机组时段123456120.0 0.00.00.00.00.020.00.00.00.00.00.03350.8 224.4 115.9 172.5 202.4 230.0 机组时段78910111210.00.00.0 0.00.00.020.035.0 70.2 140.9 80.6 35.0 3287.5 365.7 400.0 400.0 400.0 375.5 机组时段13141516171810 .00.00.00.00.00.020.00.035.0 35.0 60.0 112.9 3349.6 339.5 365.2 390.5 400.0 400.0 机组时段19202122232410.00.00.043.9 0.00.02187.5 267.5 347.5 368.0 288.0 0.03387.5 399.5 400.0 400.0 287.0 345.0 启停情况(“1”表示“启动”,“0”表示“停止”)机组时段123456110000020000003111111机组时段789101112100000020111113111111机组时段131415161718100000020011113111111机组时段192021222324100010021111103111111在24个连续时段中机组发电的的最小总成本元。六、模型求解结果的分析6.1 单个时段经济调度模型求解结果的分析从单个时段经济调度模型的程序求解结果出发,可以看出机组三出力最大,其次为机组二、机组一。 现进一步从机组的最小出力之和到最大出力之和的所有负荷需求值进行分析,所得的机组组合情况绘制折线图如下603520400368100图二 负荷需求在可行区域内与机组的经济调度关系对图像分析可得,机组三首先达到最大值,其次是机组二、机组一,说明其边际成本的关系为:机组三机组二机组一。这与实际情况相符。6.2 动态经济调度模型求解结果的分析对于动态经济调度模型,为了直观的表现出机组出力的变化及其大小关系,现绘制图像如下图三 三台机组的出力变化图像为了清晰地表示出在每个时段中每台机组的出力变化情况,现将三机组出力随时段变化图像分别绘制如下图四 机组一的出力变化图像图五 机组二的出力变化图像图六 机组三的出力变化图像从图像可以看出,在24个连续时段中,三台机组分别满足各自爬坡约束的前提下,优先调度机组三,其次调度机组二,最后考虑机组一。这是由三台机组各自的边际成本所决定的。6.3 机组组合模型求解结果的分析同样,对于机组组合模型,为了直观的表现出机组出力的变化及其大小关系,现绘制图像如下图七 机组一的出力变化图像为了清晰地表示出在每个时段中每台机组的出力变化情况,现将三机组出力随时段变化图像分别绘制如下图八 机组一的出力变化图像图九 机组二的出力变化图像图十 机组三的出力变化图像 增加了机组的启停约束后,可见机组长时间处于停止状态,相反,机组三长时间处于启动状态,这也是由三台机组各自的边际成本所决定的。七、模型的改进及评价7.1 模型的改进模型改进一:机组的发电成本与其出力之间的关系并非简单的线性关系,如图 图十一 机组发电成本与出力的关系其变化为分段一次函数,因此用一个分段一次函数或二次函数(如图)来拟合精度更高。模型改进二:机组组合模型中,机组的启停间应存在一个时间差,这样更符合实际机组的启停情况,其次,机组的启动和停止可能会产生额外的成本,若将这部分成本考虑在内的话将会得到更为合适的结果。7.2 模型的评价 优点:第一,提供了一种求解多变量、多约束的混合整数线性规划的机组组合优化问题的思路,对实际情况作了合理的抽象和假设,可靠易行,具有参考价值。 第二,模型选择了3台机组作为研究对象,可以充分的模拟现实情况发电供电系统中的一个单元,将一个时段内的负荷需求和发电量作为一个常数处理,一来简化了模型和计算,二来增强了模型的可扩展性和普适性。 缺点:第一,采用一个一次函数对发电成本和出力的拟合,拟合误差比较大。特别是机组规模比较小时更是如此。第二,将一个时段内的负荷需求和发电量作为一个常数处理,在简化处理的同时,带来了与实际的一些误差。参考文献:1 姜启源,谢金星,叶俊,数学模型,北京:高等教育出版社,20062 赵东方,数学模型与计算,北京:科学出版社,2007附录附录1:机组的相关参数1.1 机组的发电功率限制(单位:MW)1.2 机组成本与出力的关系(单位:元 单位:MW)1.3 机组的爬坡速率附录2:负荷单个时段经济调度模型中,设某时刻负荷需求为700MW。动态经济调度模型和机组组合模型中负荷需求在24个连续时段中的值:时段/t12345678910负荷需求/MW370.8224.4115.9172.5202.4230.0287.5400.7470.2540.9时段/t11121314151617181920负荷需求/MW480.6410.5349.6339.5400.2425.5460.0512.9575.0667.0时段/t21222324负荷需求/MW747.5811.9575.0345.0变化曲线:图十二 负荷需求在24个连续时段中的变化附录3:求解程序(MATLAB和CPLEX)单个时段经济调度模型程序function lp()trycplex=Cplex('lp');cplex.Model.sense='minimize'cplex.Model.obj=0.5;0.3;0.2;cplex.Model.lb=20;35;60;cplex.Model.ub=100;368;400;cplex.Model.A=1 1 1;u=700;cplex.Model.lhs=u;cplex.Model.rhs=u;cplex.solve();fprintf('nSolution status=%sn',cplex.Solution.statusstring);z=cplex.Solution.objval+10.2;fprintf('Solution value=%fn',z);disp('Values=');disp(cplex.Solution.x');catchend动态经济调度模型程序(yalmip工具箱下)x=sdpvar(3,24);o=0.5 0.3 0.2;a=ones(1,3);b=370.8 224.4 115.9 172.5 202.4 230.0 287.5 400.7 470.2 540.9 480.6 410.5 349.6 339.5 400.2 425.5 460.0 512.9 575.0 667.0 747.5 811.9 575.0 345.0;xl=20*ones(1,24);35*ones(1,24);60*ones(1,24);xr=100*ones(1,24);368*ones(1,24);400*ones(1,24);d=40*ones(1,24);80*ones(1,24);140*ones(1,24);z=sum(o*x)+10.2*24;f=set(sum(x)=b)+set(x<=xr)+set(xl<=x);xt=x(:,24),x(:,1:23);f=f+set(abs(x-xt)<=d);s=solvesdp(f,z);x=double(x)plot(1:24,x)z=sum(o*x)+10.2*24机组组合模型程序(yalmip工具箱下)x=sdpvar(3,24);xb=binvar(3,24);o=0.5 0.3 0.2;a=ones(1,3);b=370.8 224.4 115.9 172.5 202.4 230.0 287.5 400.7 470.2 540.9 480.6 410.5 349.6 339.5 400.2 425.5 460.0 512.9 575.0 667.0 747.5 811.9 575.0 345.0;xl=20*ones(1,24);35*ones(1,24);60*ones(1,24);xr=100*ones(1,24);368*ones(1,24);400*ones(1,24);d=40*ones(1,24);80*ones(1,24);140*ones(1,24);rest=2.3*ones(1,24);4.7*ones(1,24);3.2*ones(1,24);restb=rest.*xb;z=sum(o*(x.*xb)+sum(restb(:);f=set(sum(x.*xb)=b)+set(x<=xr)+set(xl<=x);xt=x(:,24),x(:,1:23);f=f+set(abs(x-xt)<=d);s=solvesdp(f,z);x=double(x)xb=double(xb)plot(1:24,x.*xb)z=sum(o*(x.*xb)+sum(restb(:)附录4:求解结果单个时段经济调度模型程序求解结果Solution status=optimalSolution value=184.200000Values=20 280 400动态经济调度模型程序求解结果 Columns 1 through 10 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 111.4000 35.0000 35.0000 35.0000 35.0000 35.0000 35.0000 35.0000 50.2000 120.9000 239.4000 169.4000 60.9000 117.5000 147.4000 175.0000 232.5000 345.7000 400.0000 400.0000 Columns 11 through 20 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 20.0000 60.6000 35.0000 35.0000 35.0000 35.0000 35.0000 40.0000 92.9000 167.0000 247.0000 400.0000 355.5000 294.6000 284.5000 345.2000 370.5000 400.0000 400.0000 388.0000 400.0000 Columns 21 through 24 20.5000 60.5000 30.0000 20.0000 327.0000 351.4000 271.4000 191.4000 400.0000 400.0000 273.6000 133.6000z = 2.6723e+03机组组合模型程序求解结果x = Columns 1 through 8 20.0000 35.7424 43.0898 46.5422 48.1971 49.0125 49.4248 49.6182 224.1930 197.2159 173.4007 151.1537 128.8183 104.4147 75.0474 35.0000 350.8000 224.4000 115.9000 172.5000 202.4000 230.0000 287.5000 365.7000 Columns 9 through 16 49.5025 49.4595 49.6112 49.8912 50.0184 50.2572 50.5697 50.6323 70.2000 140.9000 80.6000 35.0000 62.7261 62.7460 35.0000 35.0000 400.0000 400.0000 400.0000 375.5000 349.6000 339.5000 365.2000 390.5000 Columns 17 through 24 50.4722 50.5392 51.1423 48.8672 48.5756 43.9000 41.5441 35.2019 60.0000 112.9000 187.5000 267.5000 347.5000 368.0000 288.0000 252.8857 400.0000 400.0000 387.5000 399.5000 400.0000 400.0000 287.0000 345.0000xb = Columns 1 through 141 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 Columns 15 through 240 0 0 0 0 0 0 1 0 01 1 1 1 1 1 1 1 1 01 1 1 1 1 1 1 1 1 1z = 2.4537e+03- 18 -