2007电工杯全国大学生数学建模竞赛论文.doc

上传人:PIYPING 文档编号:10620901 上传时间:2021-05-26 格式:DOC 页数:10 大小:71.50KB
返回 下载 相关 举报
2007电工杯全国大学生数学建模竞赛论文.doc_第1页
第1页 / 共10页
2007电工杯全国大学生数学建模竞赛论文.doc_第2页
第2页 / 共10页
2007电工杯全国大学生数学建模竞赛论文.doc_第3页
第3页 / 共10页
2007电工杯全国大学生数学建模竞赛论文.doc_第4页
第4页 / 共10页
2007电工杯全国大学生数学建模竞赛论文.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《2007电工杯全国大学生数学建模竞赛论文.doc》由会员分享,可在线阅读,更多相关《2007电工杯全国大学生数学建模竞赛论文.doc(10页珍藏版)》请在三一文库上搜索。

1、最优机组组合摘 要本文对一个3母线系统的机组组合问题进行了分析和研究,在两种不同的约束下,分别给出了这个3母线系统4个小时的具体最优机组组合计划。首先,我们从多个角度对两机组的相关数据进行了对比和分析。粗略分析,定性的确定了两机组组合的方向,多用第一个机组,少用第二个机组。进一步分析,确定了第一个机组在这4个小时都要处于运行状态。建立了以负荷,系统备用,输电线路传输电力,发电出力这几个方面为约束条件,以启动,空载,和增量三个部分发电成本为目标函数的非线性规划模型一。用LINGO编程,求解得到最小的总成本是6680¥,并且得到了包括各小时各机组的状态,各小时各机组的发电出力和各小时各机组提供的备

2、用等详细的最优机组组合计划。例如:机组1在这4个小时内一直处于运行状态,机组2在第1,4小时处于关闭状态,在第2,3小时处于运行状态。其次,我们在模型一保持目标函数不变的基础上,综合考虑发电机组有关出力和运行与否方面其它的物理特性约束,建立了非线性规划模型二。用LINGO编程,求解得到最小的总成本是6820¥,并且得到了包括各小时各机组的状态,各小时各机组的发电出力和各小时各机组提供的备用等详细的最优机组组合计划。例如:机组1在这4个小时内一直处于运行状态,机组2在第1小时处于关闭状态,在第2,3,4小时处于运行状态。最后,我们对模型结果的合理性进行了分析,对模型本身进行了评价。本文建立的模型

3、简单,但求解较难。但是我们在对一些分段函数的处理时运用了一些小技巧,使得求解得到简化。关键词:发电成本、非线性规划、LINGO、机组状态 一、问题重述当前的科学技术还不能有效地存储电力,所以电力系统的安全运行显得尤为重要,电力生产和消费在任何时刻都要相等。但是由于发电机组的物理特性限制,发电机组不能够随心所欲地发出需要的电力。于是,为了能够实时平衡变化剧烈的电力负荷,电力部门往往需要根据预测的未来电力负荷安排发电机组起停计划,在满足电力系统安全运行条件下,追求发电成本最小。在没有电力负荷损耗以及一个小时之内的电力负荷和发电机出力均不变的前提下,假定所有发电机组的发电成本都是由启动成本,空载成本

4、和增量成本这3部分组成。需要考虑的约束有:1负荷平衡约束:任何小时,电力负荷之和必须等于发电机发电出力之和。2系统备用约束:处于运行状态的发电机的最大发电能力减去其出力称为该发电机的备用容量,处于停运状态的发电机的备用容量为0。任何小时,发电机的备用容量之和必须大于系统备用要求。3输电线路传输容量约束:线路传输的电能必须在它的传输容量范围内。4发电机组出力范围约束:处于运行状态的发电机组的发电出力必须小于其最大发电能力(Pmax, MW)。5机组增出力约束(Ramp Up, MW/h):发电机组在增加发电出力时,不能太快,有一个增加出力的速度上限,在一定时间内(通常是10分钟,为简单起见,本题

5、取1个小时)不能超过额定范围。6机组降出力约束(Ramp Down, MW/h):与机组增出力约束类似,发电机组在减少发电出力时也有一个减少出力的速度上限。 现在,需要综合考虑这些约束分别来解决如下三个问题:问题1: 有一个3母线系统,其中有2台机组、1个负荷和3条输电线路,已知4个小时的负荷和系统备用要求。请求出这4个小时的最优机组组合计划(包括总成本、各小时各机组的状态、各小时各机组的发电出力和各小时各机组提供的备用)。所有数据请见附件图及表格。问题2: 在问题1的基础上,考虑发电机组的下列物理特性(见附件)约束,重新制定最优机组组合计划。1发电机组的稳定出力范围约束:处于运行状态的发电机

6、组的发电出力必须大于其最小稳定运行出力(Pmin, MW)。发电机组不能在0, Pmin) 出力范围内稳定运行。2机组启动时的出力约束:当机组从停运状态变为运行状态时,机组在该小时的发电出力必须为其最小稳定运行出力Pmin。3机组停运时的出力约束:当机组从运行状态变为停运状态时,机组在该小时的发电出力必须为其最小稳定运行出力Pmin。4机组最小运行时间约束Min ON Time(hour):机组每次启动后,至少需要运行的小时数。5机组最小停运时间约束Min OFF Time(hour):机组每次停运后,至少需要停运的小时数。二、问题分析2.1问题一的分析2.1.1最优机组组合的理解问题一要求我

7、们求解3母线系统在这4个小时的最优的机组组合计划。这4个小时机组组合计划即指各小时各机组的状态,各小时各机组的发电出力,各小时各机组提供的备用以及这4个小时发电的总成本。最优的机组组合计划就是指在满足各种电力系统安全运行要求以及其他的相关的约束下,可以使发电成本最小的一种机组组合计划。2.1.2发电成本的分析对于发电成本,在本问题中,在没有电力负荷损耗以及一个小时之内的电力负荷和发电机出力均不变的前提下,只考虑启动成本,空载成本和增量成本这3部分成本。可是总的发电成本与各小时各机组的状态尤为相关,于是我们首先细致的观察了一下问题给出的几个表格的数据。1)G1和G2的对比通过观察表1中两机组的最

8、大出力和表2中两机组的启动成本,空载成本,增量发电量和增量成本的数据以及考虑到表3中机组的初始状态,我们可以对比发现如下几点特征:1.从发电量的角度来说,G1的最大出力比G2的大,G1的增量发电量也比G2的大;2.从成本的角度来说,G1的空载成本比G2的少,G1的增量成本也G2的少;3.从初始状态的角度来说,G1的启动成本虽然比G2的高,但是G1在这之前就已经运行了2个小时,而G2关机了3个小时,少了一次G1启动的次数。综合这三个特征,我们定性的分析,可以尽量的增加G1运行的时间,尽量的减少G2运行的时间(因为G1单位时间内的发电量多一些),尽量的减少G1启动的次数(因为G1的启动成本高一些)

9、,从而可以减少发电的成本。2)G1状态的确定通过对比观察表1中G2的最大出力和表4中Bus2的负荷以及表5中系统备用要求,我们发现G2的最大出力是100MW,单独让G2运行不能满足系统负荷和备用的要求,所以G1在这4个小时内必须一直是处于运行的状态。经过这样的分析,可以大大的简化问题的难度,方便了发电成本的处理和计算。2.2问题二的分析问题2是在问题1的基础上添加了几个约束来进行重新制定最优机组组合计划的。所以我们就只针对这几个约束条件来进行分析和探索。主要就是有关发电出力和运行与否的时间约束。1)发电出力的约束它分为稳定,启动和停运三个方面的约束。在稳定状态时,有范围约束,要求处于运行状态的

10、发电机组的发电出力必须大于其最小稳定运行出力。我们只需在之前判断出机组的状态就好表示。在启动时,由于我们已经假设发电机的启动只是在第一个小时之前或最后一个小时之后或两个相邻小时之间的瞬间完成的。所以我们在判断机组是否启动时就可以结合前后两个状态来看。结合前后两个状态,我们就可以对机组是否启动做以判断,从而对它的发电出力做以约束和限制。在停运时,同理由于我们假设发电机的关闭也只是在第一个小时之前或最后一个小时之后或两个相邻小时之间的瞬间完成的。所以我们在判断机组是否关闭时也可以结合前后两个状态来看。从而对它的发电出力做以约束和限制。2)运行与否的时间约束若机组启动,则要满足一定的运行时数才可以关

11、闭;若机组关闭,则要满足一定的运行时数才可以启动。对于这种约束,由于我们假设发电机的启动和关闭都只是在第一个小时之前或最后一个小时之后或两个相邻小时之间的瞬间完成的。所以我们在判断机组运行与否时就可以结合前后的几个小时的状态来判断。三、模型假设1.假设发电机的启动和关闭都只是在第一个小时之前或最后一个小时之后或两个相邻小时之间的瞬间完成的;2.假设机组和输电线路都是完好的,期间不出现损坏或短路等影响发电的情况;3.假设所给数据都符合实际情况,没有异常的数据;4.假设发出的电不存储,直接用于消费;5.假设没有电力负荷损耗以及一个小时之内的电力负荷和发电机出力均不变;6.假定所有发电机组的发电成本

12、都只考虑启动成本,空载成本和增量成本这3部分。四、符号说明 =1,2 表示机组 ; =1,2 ,3,4 表示第 个小时; =1,2 表示增量发电量的第 个阶段的发电出力; 表示机组 在第 个小时的第 个阶段的发电出力; 表示第 小时的电力负荷; 表示第 小时的备用容量; 表示机组 在第 个小时的发电出力; 表示机组 的最大出力; 表示机组 的最大增出力; 表示机组 的最小增出力; 表示机组 的空载成本; 表示发电总成本; 表示机组 的最小出力五、模型的建立和求解5.1模型一的建立和求解5.1.1目标函数的建立目标函数是发电总成本,由启动成本,空载成本和增量成本这3部分组成。我们就先分别求出这3

13、个部分的表达式。(1)启动成本的表示对于G1,由于G1一直是开着的,不需花费启动成本。对于G2,由于G2开一次就要花费一次启动成本,而它的启动次数为 ,所以它的启动成本表示为 。所以总的启动成本的表示为 。(2)空载成本的表示对于G1,由于G1一直是开着的,所以它的空载成本是 。对于G2,如果G2启动的话就才会有空载成本,所以它的空载成本是 。所以总的空载成本的表示为 。(3)增量成本的表示对于G1,由于G1一直是开着的,所以它的空载成本是 。对于G2,如果G2启动的话就才会有增量成本,所以它的增量成本是 。所以总的空载成本的表示为 。 综合上面三个因素,得到目标函数发电总成本为: 5.1.2

14、约束条件的生成(1)负荷平衡的约束任何小时,电力负荷之和必须等于发电机发电出力之和。即 (1)(2)系统备用的约束处于运行状态的发电机的最大发电能力减去其出力称为该发电机的备用容量,处于停运状态的发电机的备用容量为0。任何小时,发电机的备用容量之和必须大于系统备用要求。即 (2)(3)输电线路传输容量的约束线路传输的电能必须在它的传输容量范围内。即 (3)(4)发电机组出力范围的约束处于运行状态的发电机组的发电出力必须小于其最大发电能力。即 (4)(5)机组增出力和降出力的约束发电机组在增加发电出力时,不能太快,有一个增加出力的速度上限,在一定时间内(通常是10分钟,为简单起见,本题取1个小时

15、)不能超过额定范围。与机组增出力约束类似,发电机组在减少发电出力时也有一个减少出力的速度上限。两者结合起来,即 (5)(6)机组增量发电量的表示由于机组发电量与增量成本的关系是一个分段函数,分为了两段。为了编程计算输入的方便,我们将这非线性的分段函数作了一个处理。我们将这个非线性的分段函数用一个两式之积等于0的形式来表示,式子如下: (6)(7)机组发电出力的约束机组 在第 个小时的发电出力分为了 个阶段,所以机组 在第 个小时的发电出力就等于这 个阶段的总和。即 (7)(8)机组2的运行状态和发电出力的约束如果机组2在第 个小时内有发电出力,即发电出力大于0,则机组2必处于运行状态,即 ;如

16、果机组2在第 个小时内没有发电出力,即发电出力等于0,则机组2必处于关闭状态,即 。我们将这非线性的分段函数作了一个处理,我们建立了一个不等式来对这关系做以描述,方便了表达,式子如下: (8)5.1.3模型一的最终确定根据前面的一些关于问题一的一些细致的讨论,由约束(1)(8),我们可以得到了问题一最终的非线性规划模型为 5.1.4模型一的求解将上述模型用LINGO编程(详细程序见附录1),经过运行,得到了最小的发电成本为6680¥,并且得到了包括各小时各机组的状态,各小时各机组的发电出力和各小时各机组提供的备用等详细的最优机组组合计划(详见附录2),归纳得到下列表格:表 1 各小时各机组的状

17、态12341运行运行运行运行2关闭运行运行关闭表 2 各小时各机组的发电出力(MWh)123411001001101402030600表 3 各小时各机组提供的备用(MW)123411001009060210070401005.2模型二的建立5.2.1模型二目标函数的确定 题目中要求我们在问题1的基础上,增加考虑一些发电机组的物理特性的约束,重新制定最优机组组合计划。只是约束条件的增加,目标函数并未改变,仍然是 5.2.2模型二的约束条件的表示首先,我们保持问题1的约束不变,在此基础上增加一些约束,如下:1)发电机组的稳定出力范围约束由于发电机组不能在0,P min出力范围内稳定运行,所以就要

18、求处于运行状态的发电机组的发电出力必须大于其最小稳定运行出力。即: (9)2)机组启动时的出力约束当机组有停运状态变为运行状态时,机组在该小时的发电出力必须为其最小稳定运行出力。也即运行状态的第一个小时出力必须为最小出力。由于我们在前面已经假设了发电机的启动只是在第一个小时之前或最后一个小时之后或两个相邻小时之间的瞬间完成的。所以我们在判断机组是否启动时就必须结合前后两个状态来看。首先我们将第一个小时单独的提出来,若在一开始即第一个小时前就启动,则第一个小时的发电出力即为最小的发电出力。对于后边的几个小时,我们通过练习前后两个小时的状态来进行判断。如果前一个小时处于停运状态,而后一个小时处于运

19、行状态,则这两个小时之间就启动了一次,用式子就可以表示为 。于是得到了如下的约束: (10)3)机组停运时的出力约束当机组有运行状态变为停运状态时,机组在该小时的发电出力必须为其最小稳定运行出力。也即运行状态的最后一个小时出力必须为最小出力。由于在下面的约束中最小的运行时间为2个小时,最小的停运时间是1个小时,所以综合考虑这几个约束,机组2就只可能在第2或第3个小时末关闭,即由运行状态变为停运状态,相应的第2或第3个小时内的发电出力为最小的发电出力。即 (11)4)机组最小运行时间的约束机组每次启动后,至少需要运行2个小时。就是说如果前面一个小时的时候机组是出于运行状态的话,那么后边的一个小时

20、的状态也必然是处于运行状态。由于要综合考虑前后将近两到三个小时的机组的状态,所以我们首先对第一个小时的状态作了讨论:若 ,则 ,否则不变,可以用式子表示为 。接着对于后边的几个小时,如果前2个小时时处于停运状态,前一个小时时处于运行状态,则这个小时内必处于运行状态,可以用式子表示为 。通过这样的判断,我们就可以得出该小时的状态。得到的约束如下: (12) 5)机组最小停运时间约束机组每次停运后,至少需要停运1个小时,这个约束根据我们在前面的假设,假设发电机的关闭只是在第一个小时之前或最后一个小时之后或两个相邻小时之间的瞬间完成的,那么在接下来的那个小时内必然处于停运的状态。5.2.3模型二的最

21、终确定在模型一的基础上,保留模型一的约束条件,再加上前面的一些关于问题二的一些细致的讨论,由约束(1)(12),我们可以得到问题二最终的非线性规划模型模型为 5.2.4模型二的求解将上述模型用LINGO编程(详细程序见附录3),经过运行,得到了最小的发电成本为6820¥,并且得到了包括各小时各机组的状态,各小时各机组的发电出力和各小时各机组提供的备用等详细的最优机组组合计划(详见附录4),归纳得到下列表格:表 4 各小时各机组的状态12341运行运行运行运行2关闭运行运行运行表 5 各小时各机组的发电出力(MWh)1234110011011010020206040表 6各小时各机组提供的备用(

22、MW)1234110090901002100804060六、模型的结果分析对比这两个问题的模型,除了约束多少的不同外,有很多相似的地方。这两个模型的目标函数都是最小的发电总成本。而在本题中,对于发电机组的发电成本我们只考虑启动成本,空载成本和增量成本这3部分。所以我们就从结果中的这紧扣三个方面对结果进行分析。从运行状态的结果来分析,观察表1和表4的结果,我们可以看到G1一直处于运行状态,G2在第一个小时里都是关着的。这样是由于G1在之前就已经有发电量了,关闭G2可以节约G2的空载成本,并且G1的发电增量远比G2多。在最后一个小时,综合考虑各因素,可以适当的首先考虑关闭G2,如问题一的结果表1。

23、 从发电出力的结果和系统备用的约束来分析,观察表2和表5的结果,我们可以看到G1的发电出力远远的大于G2的发电出力。这主要要从增量发电量和增量成本的角度来分析。对比G1和G2,我们可以看到G1的增量发电量比G2的高很多,且增量成本比G2少,所以让G1发比G2更多的电是非常符合实际情况的。七、模型的评价对于本文中建立的两个模型,我们可以发现重点是在约束条件上面。在建立这些约束条件时,我们主要进行了一些小技巧型的处理。例如在建立第(6)个约束条件时,由于机组发电量与增量成本的关系是一个分段函数,分为了两段。为了编程计算输入的方便,我们将这非线性的分段函数作了一个处理。我们将这个非线性的分段函数用一

24、个两式之积等于0的形式来表示。这样大大的方便了我们的解题。类似的还有在建立第(8)个约束条件时,运行状态和发电出力之间有着一定的关系,但是也是个非线性的分段函数。我们将这非线性的分段函数作了一个相似的处理,我们建立了一个不等式来对这关系做以描述,方便了表达。八、参考文献1 2 3 4 附录附录1:问题一的LINGO程序model:SETS:G/1,2/:mc,zmax,zmin;time/1.4/:by,L,y;bus/0,1,2/;line/1.3/:mp;link(G,time):c,b,x1,x2;ENDSETSDATA:mc=200 100;!最大出力;L=100 130 170 14

25、0;!负荷;BY=20 30 50 40;!系统要求备用;ZMAX=30 40;!最大增出力;ZMIN=50 60;!最大减出力;MP=200 100 200;!输电线路最大传输容量;y=, ;ENDDATAmin=y(1)*100+if(y(2)-y(1)#lt#1,0,1)*100+if(y(3)-y(2)#lt#1,0,1)*100+if(y(4)-y(3)#lt#1,0,1)*100+400+sum(time(i):200*y(i)+x1(1,i)*10+14*x2(1,i)+y(i)*(12*x1(2,i)+15*x2(2,i);for(time(i):L(i)=sum(G(k):c

26、(k,i);for(time(i):mc(1)-c(1,i)+y(i)*mc(2)-y(i)*c(2,i)by(i);for(link(k,i):b(k,i)=mc(k)-c(k,i);0=200-0.6667*C(2,1)+0.3333*L(1);200-0.6667*C(2,1)+0.3333*L(1)=400;0=200-0.6667*C(2,2)+0.3333*L(2);200-0.6667*C(2,2)+0.3333*L(2)=400;0=200-0.6667*C(2,3)+0.3333*L(3);200-0.6667*C(2,3)+0.3333*L(3)=400;0=200-0.6

27、667*C(2,4)+0.3333*L(4);200-0.6667*C(2,4)+0.3333*L(4)=400;0=100-0.3333*C(2,1)+0.6667*L(1);100-0.3333*C(2,1)+0.6667*L(1)=200;0=100-0.3333*C(2,2)+0.6667*L(2);100-0.3333*C(2,2)+0.6667*L(2)=200;0=100-0.3333*C(2,3)+0.6667*L(3);100-0.3333*C(2,3)+0.6667*L(3)=200;0=100-0.3333*C(2,4)+0.6667*L(4);100-0.3333*C(

28、2,4)+0.6667*L(4)=200;0=200+0.3333*C(2,1)+0.6667*L(1);200+0.3333*C(2,1)+0.6667*L(1)=400;0=200+0.3333*C(2,2)+0.6667*L(2);200+0.3333*C(2,2)+0.6667*L(2)=400;0=200+0.3333*C(2,3)+0.6667*L(3);200+0.3333*C(2,3)+0.6667*L(3)=400;0=200+0.3333*C(2,4)+0.6667*L(4);200+0.3333*C(2,4)+0.6667*L(4)=0);for(link(k,i)|i#

29、LE#3:c(k,i+1)-c(k,i)=zmax(k);for(time(i):x1(1,i)*x2(1,i)-100*x2(1,i)=0);for(time(i):x1(2,i)*x2(2,i)-60*x2(2,i)=0);for(link(k,i):c(k,i)=x1(k,i)+x2(k,i);M=200;for(time(i):c(2,i)by(i);for(link(k,i):b(k,i)=mc(k)-c(k,i);0=200-0.6667*C(2,1)+0.3333*L(1);200-0.6667*C(2,1)+0.3333*L(1)=400;0=200-0.6667*C(2,2)

30、+0.3333*L(2);200-0.6667*C(2,2)+0.3333*L(2)=400;0=200-0.6667*C(2,3)+0.3333*L(3);200-0.6667*C(2,3)+0.3333*L(3)=400;0=200-0.6667*C(2,4)+0.3333*L(4);200-0.6667*C(2,4)+0.3333*L(4)=400;0=100-0.3333*C(2,1)+0.6667*L(1);100-0.3333*C(2,1)+0.6667*L(1)=200;0=100-0.3333*C(2,2)+0.6667*L(2);100-0.3333*C(2,2)+0.666

31、7*L(2)=200;0=100-0.3333*C(2,3)+0.6667*L(3);100-0.3333*C(2,3)+0.6667*L(3)=200;0=100-0.3333*C(2,4)+0.6667*L(4);100-0.3333*C(2,4)+0.6667*L(4)=200;0=200+0.3333*C(2,1)+0.6667*L(1);200+0.3333*C(2,1)+0.6667*L(1)=400;0=200+0.3333*C(2,2)+0.6667*L(2);200+0.3333*C(2,2)+0.6667*L(2)=400;0=200+0.3333*C(2,3)+0.666

32、7*L(3);200+0.3333*C(2,3)+0.6667*L(3)=400;0=200+0.3333*C(2,4)+0.6667*L(4);200+0.3333*C(2,4)+0.6667*L(4)=0);for(link(k,i)|i#LE#3:c(k,i+1)-c(k,i)=zmax(k);for(time(i):x1(1,i)*x2(1,i)-100*x2(1,i)=0);for(time(i):x1(2,i)*x2(2,i)-60*x2(2,i)=0);for(link(k,i):c(k,i)=x1(k,i)+x2(k,i);M=200;for(time(i):c(2,i)=M*

33、y(i);for(time(i):bin(y(i);for(time(i):bnd(0,x1(1,i),100);for(time(i):bnd(0,x2(1,i),100);for(time(i):bnd(0,x1(2,i),60);for(time(i):bnd(0,x2(2,i),40);for(time(i):bnd(50,c(1,i),200);for(time(i):y(i)*pmin(2)=c(2,i);c(2,1)=if(y(1)#eq#1,pmin(2),0);for(time(i)|i#ge#2:c(2,i)=if(y(i)-y(i-1)#eq#1,pmin(2),c(2,i);for(time(i)|i#ge#2 #and# i#le#3:c(2,i)=if(y(i)-y(i+1)#eq#1,pmin(2),c(2,i);y(2)=(1-y(1)*y(2)+y(1);for(time(i)|i#ge#3:y(i)=if(y(i-1)-y(i-2)#eq#1,1,y(i);end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1