资源描述
发电机机组最优组合数学模型
第22组 明波 谭钟兴 龚淑娟
发电机机组最优组合数学模型
摘要
随着发电机种类的多样化,电力生产部门有了更多的选择。为了减小电力生产成本,如何合理的计划使用发电机,提出一种发电机最优组合方案是顺应当今时代节能趋势主流做法。本文主要讨论如何合理计划使用发电机,使得每天发电机的总成本达到最少,是一个分段优化的问题。鉴于题目的要求,我们建立了两个最优化模型。
对于问题一,是通过找出发电机最优组合来求每天电力生产总成本的最小值,以每天电力生产总成本作为目标函数,并建立整数规划模型。在模型一中,我们根据题目的条件及相关数据,通过分析各时段的成本得出:各时段的电力生产总成本,然后对各时段成本求和得到目标成本函数。根据题目所给的已知条件进行合理的假设下,分析确定模型的约束条件。通过lingo10.0软件编程求解,确定不同型号发电机在不同时段的使用数量,找出最优解,得到电力生产过程中每天的最小成本。不同型号的发电机组在不同时段最优组合结果如下:(单位:个)
时
段
型号
0-6
6-9
9-12
12-14
14-18
18-22
22-24
型号1
0
3
3
3
2
2
0
型号2
4
4
4
4
4
4
4
型号3
3
8
8
8
8
8
6
型号4
0
3
0
3
1
3
0
对于问题二,是要求在任意时刻,正在工作的发电机必须留出20%的发电能力余量,也即是要求发电机实际输出功率在低于80%情况下,仍能满足每日电力需求量。由于模型二与模型一相似,我们在在问题一的基础上,利用问题一中建
立的目标函数,对约束条件中的数据进行修改,在lingo10.0下运行程序,最终解得发电机每天最小成本为。不同型号的发电机组在不同时段的最优组合结果如下:(单位:个)
时
段
型号
0-6
6-9
9-12
12-14
14-18
18-22
22-24
型号1
0
7
7
8
5
5
0
型号2
4
4
4
4
4
4
4
型号3
1
8
8
8
8
7
6
型号4
3
3
1
3
2
3
2
关键词: 分段优化 整数规划 最优解 最小总成本
1. 问题重述
为满足每日电力需求(单位为兆瓦(MW)),可以选用四种不同类型的发电机。每日电力需求如下表1。
表1-1 每日用电需求(单位:兆瓦)
时段(0-24)
0-6
6-9
9-12
12-14
14-18
18-22
22-24
需求
12000
32000
25000
36000
25000
30000
18000
每种发电机都有一个最大发电能力,当接入电网时,其输出功率不应低于某一最小输出功率。所有发电机都存在一个启动成本,以及工作于最小功率状态时的固定的每小时成本,并且如果功率高于最小功率,则超出部分的功率每兆瓦每小时还存在一个成本,即边际成本。这些数据均列于表2中。
表1-2 发电机情况
可用数量
最小输出功率(MW)
最大输出功率(MW)
固定成本(元/小时)
每兆瓦边际成本
(元/小时)
启动成本
型号1
10
750
1750
2250
2.7
5000
型号2
4
1000
1500
1800
2.2
1600
型号3
8
1200
2000
3750
1.8
2400
型号4
3
1800
3500
4800
3.8
1200
只有在每个时段开始时才允许启动或关闭发电机。与启动发电机不同,关闭发电机不需要付出任何代价。
本文需解决的问题:
问题一:在每个时段应分别使用哪些发电机才能使每天的总成本最小,最小总成本为多少?
问题二:如果在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升。那么每个时段又应分别使用哪些发电机才能使每天的总成本最小,此时最小总成本又为多少?
2. 模型的假设与符号说明
2.1模型的假设
假设1:发电机工作时的输出功率不变;
假设2:同一种型号同一时段的发电机输出功率相同;
假设3:发电机在每个时段启动或关闭时的时间不计;
假设4:发电机在发电过程中自身的功率损耗不计;
假设5:发电机组在传输电的过程中消耗的功率不计;
2.2符号说明
符号
符号说明
表示在第时段第种型号发电机的启用数量
表示在第时段第种型号发电机的启动成本
表示第时段发电机的总成本
表示问题一中发电机组每天的总成本
表示问题二中发电机组每天的总成本
表示每天第时段电力的需求量
表示每天第时段电力的供应量
表示第种型号发电机已知数量
表示第种型号发电机的启动成本
表示第种型号发电机的固定成本
表示第种型号发电机每兆的边际成本
表示功率的百分比(80%)
表示在第时段第种型号发电机的输出功率
表示第种型号发电机的最小输出功率
表示第种型号发电机的最大输出功率
()表示时段: 1表示0-6时,2表示6-9时,3表示9-12时,4表示12-14时,5表示14-18时,6表示18-22时,7表示22-24时;
()表示发电机的型号;
3. 问题分析
本题研究的是发电机最优组合问题。题目中有四种不同型号的发电机,每种发电机都有启动成本、固定成本和边际成本,并且规定了七个不同的供电时段。题目要求每个时段发电机组合既能够满足用电需求,同时也使得成本费用最小。其中固定成本和边际成本较容易确定,而启动成本(电机启动时所花费的代价)则难于有效地确定。鉴此,我们不能将各个时段分开分别求最优解,而应该将这七个时段作为一个整体,考虑前后两相邻时段发电机开启的数量,尽量在前一时段的基础上减少启动成本,如果在后一个时段某种型号的电机数量减小,则只需要关闭电机即可,这样就可以大大减少时段的启动成本。
总成本
启动成本
固定成本本
边际成本
图一 各时段成本组成图
针对问题一,在满足各个时段电力需求的条件下,要求发电机的组合能使得成本费用最小。我们分别设出各个时段不同型号发电机的数量和输出功率,然后分别表示出六个时段的成本,再累加即为电力生产每天的总成本,考虑到各种约束条件,我们最终使用Lingo10.0求解,得到一个最优方案。
针对问题二,要求在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升。即在满足电力需求的情况下,每个工作的发电机的工作功率必须大于其本身的最小功率,小于最大功率的80%,这样只需修改问题一的源程序功率的限制条件,就可以得到问题二的最优方案。
4.问题一的解答
4.1模型一的建立
4.1.1确定目标函数
电力生产的总成本是由发电机的启动成本、固定成本及边际成本组成。为了提出一种发电机的最优组合使得电力成本最小的数学模型,本文通过分析局部优化因素,通过求解各时段发电机的最小成本,再进行累加求和得到最小成本。而总成本中的启动成本(表示时段,表示发电机的型号, )是动态的,我们建立了动态整数规划模型。
①ⅰ)不同型号的发电机在不同时间段的启动成本为,在第一时段,发电机的启动不受其它影响,按正常成本计算,其数学表达式为:
ⅱ) 在()后面的时段,如果后一时段相同型号发电机的使用个数小于相邻的前一时段,由于正确的关闭发电机不需要付出任何代价,则其启动成本为0,反之,按正常发电机的启动成本来计算,其数学表达式如下:
② 第时段发电机的总成本由发电机的启动成本、固定成本及边际成本组成,其数学表达式为:
③ 最终我们建立了目标函数,发电机组每天的总成本:
4.1.2确定约束条件
ⅰ)各种型号的发电机的输出功率不应低于其最小输出功率,高于最大输出功率,故在不同时段的发电机的输出功率有上、下限约束:
,
ⅱ) 而4种不同发电机的数量是固定的,其数学表达式为:
ⅲ) 电力生产是为了满足需要,根据题目要求有:
其中:;
表示每天第时段电力的供应量;
表示每天第时段电力的需求量。
4.1.3综上所述,得到问题一的多目标优化模型:()
4.2模型一的求解
根据题意,将各个时段各种不同型号发电机的成本进行累加,然后写出相应的约束条件,使用Lingo10.0软件对模型一进行求解,得出发电机机组的最优组合结果如下表:
(一)发电机机组组合优化结果,即不同时段不同型号的发电机处于工作状态的数量
表4-1:不同时段不同型号的发电机处于工作状态的数量(单位:个)
时
段
型号
0-6
6-9
9-12
12-14
14-18
18-22
22-24
型号1
0
3
3
3
2
2
0
型号2
4
4
4
4
4
4
4
型号3
3
8
8
8
8
8
6
型号4
0
3
0
3
1
3
0
注:没有开启发电机时,输出功率本应为0,而在计算时仍会产生一个输出功率,这个值我们仍然按计算结果处理。
(二)由于不同型号的发电机在不同时段的输出功率不相同,只要其输出功率在此发电机额最小功率与最大功率之间,适当的调整输出功率,也会达到减小电力生产成本的效果。通过模型计算求解,得出不同型号发电机在不同时段的输出功率如下表:
表4-2:不同型号发电机在不同时段的输出功率(单位:兆瓦)
时
段
型号
0-6时
6-9时
9-12时
12-14时
14-18时
18-22时
22-24时
型号1
750
1533
1000
1750
750
1300
750
型号2
1500
1500
1500
1500
1425
1500
1500
型号3
2000
2000
2000
2000
2000
2000
2000
型号4
1800
1800
1800
2917
1800
1800
1800
(三)利用lingo10.0软件编程(运行程序见附录一),求解模型一,找出最优解(见附录程序一的运行结果),得到每天发电机机组的最小总成本为:
4.3结果分析
在这种发电机机组组合的方案下,我们可以发现,启动成本对电力生产总成本的影响极大,减小发电机重复启动次数,可以节省电力生产成本。另外,结合固定成本与边际成本的大小,有效的分配组合发电机同样也是需要考虑的因素之一。从上述表三中可以看出,各型号的发电机从第一到第七时段,处于工作状态的发电机数量大多保持不变或减小,只有少数型号发电机因固定成本极高,而使中间时段的发电机有增启的情况。其不同型号发电机各时段的开启与关闭情况的结果直观柱状图如下:
图二 模型一各时段不同型号发电机启动情况
模型一中所有结果如下:
时
段
型号
0-6
6-9
9-12
12-14
14-18
18-22
22-24
型号1
数量:个
0
3
3
3
2
2
0
功率:瓦
750
1533
1000
1750
750
1300
750
型号2
数量:个
4
4
4
4
4
4
4
功率:瓦
1500
1500
1500
1500
1425
1500
1500
型号3
数量:个
3
8
8
8
8
8
6
功率:瓦
2000
2000
2000
2000
2000
2000
2000
型号4
数量:个
0
3
0
3
1
3
0
功率:瓦
1800
1800
1800
2917
1800
1800
1800
各时段实际输出总功率
(兆瓦)
12000
31999
25000
36001
25000
30000
18000
表4-3 模型一结果一览表
发电机组的发电量必须满足每天各时段的电力需求量,且不能产生无用功,下图为实际发电量与需求量的对比图
图三 模型一电力需求量与发电机组实际发电量对比图
5.问题二的求解
5.1模型二的建立
问题二要求在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升,与问题一模型相似,只是由于约束条件发生了变化。故仍采用模型一的框架作部分修改如下:
目标函数即发电机机组的总成本:()
5.2模型二的求解
题目要求在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升。因此,我们在模型一的基础上对源程序进行修改,使功率的约束上限变为原来的80%,又得出了发电机机组的最优组合结果如下表:
(一)发电机机组组合优化结果,即不同时段不同型号的发电机处于工作状态的数量
表5-1:不同时段不同型号的发电机处于工作状态的数量(单位:个)
时
段
型号
0-6时
6-9时
9-12时
12-14时
14-18时
18-22时
22-24时
型号1
0
7
7
8
5
5
0
型号2
4
4
4
4
4
4
4
型号3
1
8
8
8
8
8
6
型号4
3
3
1
3
2
3
2
在保留20%的发电能力余量的条件下,不同型号发电机各时段的开启与关闭情况,用柱状图直观表示如下:
图四 模型二各时段不同型号发电机开启情况
(二)与问题一类似,只要各型号的发电机的输出功率在此发电机额最小功率与能保证保留20%的发电能力余量的最大功率之间,调整输出功率,也会达到减小电力生产成本的效果。对模型二进行计算求解后,得出不同型号发电机在不同时段的输出功率如下表:
表5-2:不同型号发电机在不同时段的输出功率(单位:兆瓦)
时
段
型号
0-6时
6-9时
9-12时
12-14时
14-18时
18-22时
22-24时
型号1
751
1286
800
1400
760
1400
765
型号2
1200
1200
1200
1200
1200
1200
1200
型号3
1600
1600
1600
1600
1600
1600
1600
型号4
1867
1800
1800
2400
1800
1800
1800
(三)利用lingo10.0软件编程(运行程序见附录二),求解该数学模型,找出最优解(见附录程序二的运行结果),得到每天发电机机组的最小总成本为:
5.3结果分析
在这种发电机机组组合的方案下,所得的总结果如下表:
表5-3 模型一结果一览表
时
段
型号
0-6
6-9
9-12
12-14
14-18
18-22
22-24
型号1
数量:个
0
7
7
8
5
5
0
功率:瓦
751
1286
800
1400
760
1400
765
型号2
数量:个
4
4
4
4
4
4
4
功率:瓦
1200
1200
1200
1200
1200
1200
1200
型号3
数量:个
1
8
8
8
8
8
6
功率:瓦
1600
1600
1600
1600
1600
1600
1600
型号4
数量:个
3
3
1
3
2
3
2
功率:瓦
1867
1800
1800
2400
1800
1800
1800
各时段实际输出总功率
(兆瓦)
12001
32002
25000
36000
25000
30000
18000
注:因为我们是以四舍五入的方式取发电机机组的输出功率,故而在各时段实际输出总功率有微小的偏差。
下图为模型二中发电机机组的实际发电量与需求量的对比图:
图五 模型一电力需求量与发电机组实际发电量对比图
6. 模型的评价、改进及推广
6.1模型评价
优点:
(1)建立的模型从整体把握,通过减少发电机的数量来减小启动成本,能够十分准确的解决题目要求;
(2)模型中考虑的条件充分,没有使用过多假设,使得求出的方案更加优化;
(3)得到了两组最优方案,对现实发电机合理组合具有一定的借鉴意义;
缺点:
由于题目中的条件较复杂,求解的非线性变量较多,模型的求解需要更高版本的lingo软件,这就导致了模型的可移植性差。
6.2模型改进
可以使用更多的假设,如电机功率我们可以假定为最大值,这样使得问题大大简化,非线性变量大大减少,使得模型易于求解,移植性增强,但同时也损失了模型的完整性和准确性。
6.3模型推广
本模型是一个最优化模型,通过最优组合实现成本最小,效益最佳。可以用于商品的生产投资和分配,股票投资计划,水资源以及其它能源分配问题,军事设施的配置等等,对当今的社会生产起到很好的指导作用。
7. 参考文献
[1] 田维,用Matlab与Lindo求解线性规划,云南 潞西,德宏师范高等专科学校学报 1期,2006年
[2] 刘璟忠, 基于LINGO语言求解组合优化问题 ,现代计算机,湖南工学院,衡阳,421101, 2005, (6)
[3] 查艳萍,王刚,LINGO数学实验,经济研究导刊,昆明市林业技工学校; 云南交通职业技术学院, 2010年 25期
[4] 杜宇,优化数学模型及LINGO软件求解,黔西南民族师范高等专科学校学报,黔西南民族师范高等专科学校,2008.03期
附录
附录一:第一源程序
min=5000*x11+2250*6*x11+(p11-750)*2.7*x11*6+1600*x12+1800*6*x12+(p12-1000)*2.2*x12*6+2400*x13+3750*6*x13+(p13-1200)*1.8*x13*6+1200*x14+4800*6*x14+(p14-1800)*3.8*x14*6
+@if(x11-x21 #gt# 0,0,(x21-x11))*5000+@if(x12-x22 #gt# 0,0,(x22-x12))*1600+@if(x13-x23 #gt# 0,0,(x23-x13))*2400+@if(x14-x24 #gt# 0,0,(x24-x14))*1200
+@if(x21-x31 #gt# 0,0,(x31-x21))*5000+@if(x22-x32 #gt# 0,0,(x32-x22))*1600+@if(x23-x33 #gt# 0,0,(x33-x23))*2400+@if(x24-x34 #gt# 0,0,(x34-x24))*1200
+@if(x31-x41 #gt# 0,0,(x41-x31))*5000+@if(x32-x42 #gt# 0,0,(x42-x32))*1600+@if(x33-x43 #gt# 0,0,(x43-x33))*2400+@if(x34-x44 #gt# 0,0,(x44-x34))*1200
+@if(x41-x51 #gt# 0,0,(x51-x41))*5000+@if(x42-x52 #gt# 0,0,(x52-x42))*1600+@if(x43-x53 #gt# 0,0,(x53-x43))*2400+@if(x44-x54 #gt# 0,0,(x54-x44))*1200
+@if(x51-x61 #gt# 0,0,(x61-x51))*5000+@if(x52-x62 #gt# 0,0,(x62-x52))*1600+@if(x53-x63 #gt# 0,0,(x63-x53))*2400+@if(x54-x64 #gt# 0,0,(x64-x54))*1200
+@if(x61-x71 #gt# 0,0,(x71-x61))*5000+@if(x62-x72 #gt# 0,0,(x72-x62))*1600+@if(x63-x73 #gt# 0,0,(x73-x63))*2400+@if(x64-x74 #gt# 0,0,(x74-x64))*1200
+2.7*3*x21*(p21-750)+2250*x21*3+2.2*x22*3*(p22-1000)+1800*x22*3+1.8*x23*3*(p23-1200)+3750*x23*3+3.8*x24*3*(p24-1800)+4800*x24*3
+2.7*3*x31*(p31-750)+2250*x31*3+2.2*x32*3*(p32-1000)+1800*x32*3+1.8*x33*3*(p33-1200)+3750*x33*3+3.8*x34*3*(p34-1800)+4800*x34*3
+2.7*2*x41*(p41-750)+2250*x41*2+2.2*x42*2*(p42-1000)+1800*x42*2+1.8*x43*2*(p43-1200)+3750*x43*2+3.8*x44*2*(p44-1800)+4800*x44*2
+2.7*4*x51*(p51-750)+2250*x51*4+2.2*x52*4*(p52-1000)+1800*x52*4+1.8*x53*4*(p53-1200)+3750*x53*4+3.8*x54*4*(p54-1800)+4800*x54*4
+2.7*4*x61*(p61-750)+2250*x61*4+2.2*x62*4*(p62-1000)+1800*x62*4+1.8*x63*4*(p63-1200)+3750*x63*4+3.8*x64*4*(p64-1800)+4800*x64*4
+2.7*2*x71*(p71-750)+2250*x71*2+2.2*x72*2*(p72-1000)+1800*x72*2+1.8*x73*2*(p73-1200)+3750*x73*2+3.8*x74*2*(p74-1800)+4800*x74*2;
x11<=10;x21<=10;x31<=10;x41<=10;x51<=10;x61<=10;x71<=10;
x12<=4;x22<=4;x32<=4;x42<=4;x52<=4;x62<=4;x72<=4;
x13<=8;x23<=8;x33<=8;x43<=8;x53<=8;x63<=8;x73<=8;
x14<=3;x24<=3;x34<=3;x44<=3;x54<=3;x64<=3;x74<=3;
p11<=1750;p11>=750;p12<=1500;p12>=1000;p13<=2000;p13>=1200;p14<=3500;p14>=1800;
p21<=1750;p21>=750;p22<=1500;p22>=1000;p23<=2000;p23>=1200;p24<=3500;p24>=1800;
p31<=1750;p31>=750;p32<=1500;p32>=1000;p33<=2000;p33>=1200;p34<=3500;p34>=1800;
p41<=1750;p41>=750;p42<=1500;p42>=1000;p43<=2000;p43>=1200;p44<=3500;p44>=1800;
p51<=1750;p51>=750;p52<=1500;p52>=1000;p53<=2000;p53>=1200;p54<=3500;p54>=1800;
p61<=1750;p61>=750;p62<=1500;p62>=1000;p63<=2000;p63>=1200;p64<=3500;p64>=1800;
p71<=1750;p71>=750;p72<=1500;p72>=1000;p73<=2000;p73>=1200;p74<=3500;p74>=1800;
x11*p11+x12*p12+x13*p13+x14*p14>=12000;
x21*p21+x22*p22+x23*p23+x24*p24>=32000;
x31*p31+x32*p32+x33*p33+x34*p34>=25000;
x41*p41+x42*p42+x43*p43+x44*p44>=36000;
x51*p51+x52*p52+x53*p53+x54*p54>=25000;
x61*p61+x62*p62+x63*p63+x64*p64>=30000;
x71*p71+x72*p72+x73*p73+x74*p74>=18000;
@gin(x11);@gin(x12);@gin(x13);@gin(x14);
@gin(x21);@gin(x22);@gin(x23);@gin(x24);
@gin(x31);@gin(x32);@gin(x33);@gin(x34);
@gin(x41);@gin(x42);@gin(x43);@gin(x44);
@gin(x51);@gin(x52);@gin(x53);@gin(x54);
@gin(x61);@gin(x62);@gin(x63);@gin(x64);
@gin(x71);@gin(x72);@gin(x73);@gin(x74);
end
程序一运行结果:
Local optimal solution found.
Objective value: 1463430.
Extended solver steps: 83
Total solver iterations: 8038
Variable Value Reduced Cost
X11 0.000000 1822.500
P11 750.0000 0.000000
X12 4.000000 0.000000
P12 1500.000 0.000000
X13 3.000000 0.000000
P13 2000.000 0.000000
X14 0.000000 774.0000
P14 1800.000 0.000000
X21 3.000000 675.0000
X22 4.000000 0.000000
X23 8.000000 0.000000
X24 3.000000 1020.000
X31 3.000000 675.0000
X32 4.000000 0.000000
X33 8.000000 0.000000
X34 0.000000 -1380.000
X41 3.000000 1600.000
X42 4.000000 0.000000
X43 8.000000 0.000000
X44 3.000000 0.000000
X51 2.000000 2400.000
X52 4.000000 0.000000
X53 8.000000 3160.000
X54 1.000000 2160.000
X61 2.000000 900.0000
X62 4.000000 0.000000
X63 7.999994 -840.0000
X64 3.000000 960.0000
X71 0.000000 607.5000
X72 4.000000 0.000000
X73 6.000000 0.000000
X74 0.000000 258.0000
P21 1533.333 0.000000
P22 1500.000 0.000000
P23 2000.000 0.000000
P24 1800.000 0.000000
P31 1000.000 0.000000
P32 1500.000 0.000000
P33 2000.000 0.000000
P34 1800.000 0.000000
P41 1750.000 0.000000
P42 1500.000 0.000000
P43 2000.000 0.000000
P44 2916.667 0.000000
P51 750.0000 0.000000
P52 1425.000 0.000000
P53 2000.000 0.000000
P54 1800.000 0.000000
P61 1300.006 0.000000
P62 1500.000 0.000000
P63 2000.000 0.000000
P64 1800.000 0.000000
P71 750.0000 0.000000
P72 1500.000 0.000000
P73 2000.000 0.000000
P74 1800.000 0.000000
Row Slack or Surplus Dual Price
展开阅读全文