电力产生问题 数学建模.docx
《电力产生问题 数学建模.docx》由会员分享,可在线阅读,更多相关《电力产生问题 数学建模.docx(16页珍藏版)》请在冰点文库上搜索。
电力产生问题数学建模
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校:
三峡大学
参赛队员:
1.李懿然
2.陈文浩
指导教师或指导教师组负责人:
指导教师组
日期:
2011年7月17日
电力生产问题
摘要
本文解决的是电力生产中发电机的选择问题,为了降低发电厂的成本,提高经济效益,我们建立了多目标线性规划模型来解决问题:
针对问题一,此问属于多目标线性规划求最优解问题,我们使用线性规划软件Lingo来解决这一问题,求出各个时间段选用发电机的最优组合。
由于在相邻的两个时间段中,后一时间段选用发电机受前一时间段所选用发电机的影响,但从求出的各时间段的最优组合结果可以看出这一影响可忽略不计,详情见后文。
因此,局部最优解之和即为全局最优解。
针对问题二,此问仍然属于多目标线性规划问题,在问题一的基础之上,我们可以增加一个约束条件即机组剩余发电能力余量大于20%,在此便可在问题一的基础之上利用优化软件Lingo来得出最优解。
关键词:
多目标线性规划,局部最优解,全局最优解
1.问题重述
1.1问题背景:
由于各种不同型号的发电机的性能不同,各种型号的发电机数量不同,所需成本也不一样,合理地选择发电机组既可以满足用电需求,又能够降低生产成本,提高经济效益。
在本文中我们要解决的问题就是怎样合理选择发电机的组合,从而将电厂的生产成本降低至最小值以便提高电厂的经济效益。
1.2每日用电需求与发电机具体情况:
为满足每日电力需求(单位为兆瓦(MW)),可以选用四种不同类型的发电机。
每日电力需求如下表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中。
表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
只有在每个时段开始时才允许启动或关闭发电机。
与启动发电机不同,关闭发电机不需要付出任何代价。
1.3需要解决的问题:
(1)在每个时段应分别使用哪些发电机才能使每天的总成本最小,最小总成本为多少?
(2)如果在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升。
那么每个时段又应分别使用哪些发电机才能使每天的总成本最小,此时最小总成本又为多少?
2.问题分析
2.1问题一的分析:
第一问要求我们给出各个时间段的发电机组合使得每天的总成本最小。
我们可以先求出每个时间段的成本,分析各时间段所使用的发电机型号的组合,而后再分析它对下一时间段的影响,讨论局部的最优解是否是全局的最优解,如果求出的各个时间段使用的发电机类型与台数大致相当则可以节省出大部分的在个时间段开始时的发电机的启动成本,这样前一时间段所使用的发电机的型号与数量的影响就大大地减小了,因而可以忽略这一影响,所以局部所需成本的最优解之和即可以认为是全局的最优解。
2.2问题二的分析:
第二问要求我们求解正在工作的的发电机组留出20%的发电能力余量的情况下怎样合理使用发电机组合可以使成本最小,求最小成本。
该问仍然可以利用第一问所建立的线性规划模型来求解,我们可以在第一问的基础之上增加一个约束条件即可得到问题二的最优解。
3.模型假设与符号说明
3.1模型的假设:
1.假设各个发电机都能正常工作,在工作的时候不发生故障;
2.假设发电机的功率可以调整;
3.假设发电机的输出功率波动范围很小,可以忽略不计;
4.假设题给数据都真实可靠且具有较好的代表性。
5.假设电厂工作人员在操作发电机的过程当中不会操作失误。
3.2符号说明:
(以下变量的下标:
i=1,2,3,4,5,6,7;j=1,2,3,4)
表三:
符号说明
变量
含义
第i个时间段在工作的第j种型号的发电机数量
第i个时间段第j种型号发电机的实际功率
第i个时间段的成本
一天发电总成本
第i个时间段的时间长度
第j种型号发电机的数量
第j种型号发电机的最大输出功率
第j种型号发电机的最小输出功率
第i个时间段的功率需求
第j种型号发电机的固定成本
第j种型号发电机的边际成本
第j种型号发电机的启动成本
第i个时间段的总输出功率
第i个时间段的发电能力余量
说明:
第一时间段为:
0-6时;第二时间段为:
6-9时;第三时间段为:
9-12时;第四时间段为:
12-14时;第五时间段为:
14-18时;第六时间段为:
18-22时;第七时间段为22-24时。
4.数据分析
ⅰ从题给数据可知,我们可以运用Matlab软件编写程序将各个时间段的总用电量绘制成如下图所示(程序见附表):
图一
从图中可以看出各个时间段的用电量情况,由上表可以看出第2,4,6时间段的用电量是最高的,因而可以推测这几个时间段的成本也因该是最多的,并且所使用的发电机型号与数量都应该比较多。
ⅱ运用Matlab软件编写程序绘制发电机型号每小时成本与其功率的关系图如下所示(程序见附表):
图二
从图中可以看出功率越大,所需成本也越大。
型号2,3的斜率最小,说明功率的变化对型号2,3的影响最小,由此可以估计,在满足发电需求量条件的下应优先考虑使用型号2与型号3的发电机。
5.问题的解答
5.1模型一的建立:
5.1.1针对问题一,我们用线性规划最优解模型来解答,我们先求出各个时间段的成本最小值,而后再求解全局成本的最小值,为此我们建立如下目标函数:
5.1.2确定约束条件:
ⅰ.正在工作的各种型号发电机的数量
的约束条件,在题给条件中可以找到各种型号的发电机的数量,由此可以确定正在工作的各种型号发电机数量的约束条件(单位:
台):
ⅱ各种型号发电机的实际功率
在该型号发电机的最小输出功率与最大输出功率之间,由此可以确定各种型号发电机的实际功率
的约束条件(单位:
兆瓦MW):
ⅲ.各时间段的总输出功率不应该小于该时间段需求的功率,由此可以确定各时间段得总输出功率的约束条件:
(单位:
兆瓦):
5.1.3综上所述得到问题一的多目标线性规划模型:
5.1.4问题一的求解:
对于问题一的线性规划求最优解的模型,我们利用Lingo软件进行编程求解,先求出个时间段的最优解再对结果进行分析。
(程序见附录)所得结果如下表所示:
表四:
问题一结果
时段间
1
2
3
4
5
6
7
型号
2
3
1
2
3
4
2
3
4
1
2
3
4
2
3
4
1
2
3
4
2
3
4
数量(单位:
台)
4
3
2
4
8
3
4
7
3
2
4
8
3
4
7
3
1
4
8
3
4
3
3
成本(单位:
元)
176620
284011.4
211150.0
232800.0
272600.0
337008.8
104900.0
5.14问题一的结果分析:
由上表可知使用型号最多的是型号2与型号3,这与在数据分析是的预期结果大致相符。
由于前一时间段所使用的发电机型号对后一时间段的成本有影响,但从上表所得结果可以看出,各时间段所使用的发电机型号大致一样,使用的台数也无太大出入,因此我们可以忽略前一时间段使用发电机型号对后一时间段的成本的影响,由此,局部的最优解即为整体的最优解。
由于在求解各时间段的成本时,各个时间段是独立编程求解的,即每个阶段所使用的发电机都当做重新启动使用,考虑了启动成本,因此求得的总成本因减去重复考虑的启动成本。
各阶段重复考虑的启动成本如下表所示:
表五:
问题一重复考虑成本
时间段
1
2
3
4
5
6
7
重复考虑的成本(单位:
元)
0
17200
26800
26800
26800
26800
13600
-重复计算的启动成本=1481090.2(元)
5.2问题二的求解:
在问题一的基础之上增加一个约束条件即各时间段的的剩余发电能力余量应大于其发电能力的20%。
我们仍然运用Lingo软件求解该线性规划的最优解。
5.21.增加的约束条件(i=1,2,3,4,5,6,7):
即(单位:
兆瓦):
5.22.问题二的结果:
我们使用Lingo软件对问题二进行求解(程序见附表),所得结果如下表所示:
表六:
问题二结果
时段间
1
2
3
4
5
6
7
型号
2
3
4
1
2
3
4
2
3
4
1
2
3
4
2
3
4
1
2
3
4
2
3
4
数量(单位:
台)
4
1
2
4
4
8
3
4
7
3
7
4
8
3
4
7
3
2
4
8
3
4
3
3
成本(单位:
元)
177060.0
291720.0
211150.0
248830.0
272600
339160.0
104900
5.23问题二的结果分析:
由上表可知使用型号最多的是型号2,型号3与型号4,这与在数据分析是的预期结果大致相符。
由于前一时间段所使用的发电机型号对后一时间段的成本有影响,但从上表所得结果可以看出,各时间段所使用的发电机型号大致一样,使用的台数也无太大出入,因此我们可以忽略前一时间段使用发电机型号对后一时间段的成本的影响,由此,局部的最优解即为整体的最优解。
在这一问中,由于在求解各时间段的成本时,各个时间段同样是独立编程求解的,因此有重复考虑启动成本的情况,即每个阶段所使用的发电机都当做重新启动使用,考虑了启动成本,因此求得的总成本因减去重复考虑的启动成本。
重复考虑的启动成本如下表所示:
表七:
问题二重复考虑成本
时间段
1
2
3
4
5
6
7
重复考虑的成本(单位:
元)
0
10000
26800
26800
26800
26800
17200
-重复计算的启动成本=1511020(元)
6.模型的评价及推广
6.1模型的评价:
(1)优点:
我们建立了多目标线性规划模型,全面的考虑了各方面的因数,找出了发电机的使用组合及使用数量,使得发电厂的生产成本最少。
(2)不足:
我们将局部最优解之和近似看做全局的最优解,在这一过程中产生了一些误差,使得所得结果与实际的最优方案有一定的差距。
6.2模型的推广:
我们建立的模型不仅可以用于该发电厂,也可以用于其它商业方面的最优选择。
参考文献
【1】刘来福,黄海洋,数学建模与方法,北京,机械工业出版社;
【2】尹泽明,丁春利,精通Matlab6,清华大学出版社;
【3】袁新生,邵大宏,郁时炼,Lingo和Excel在数学建模中的应用,科学出版社。
附录
附录一:
图一的Matlab程序程序
x=[72000960007500010800010000012000036000];
bar(x);
axis([0,10,0,150000]);
xlabel(‘时间段x’);
ylabel(‘总用电量y’);
title('各时间段的总用电量');
附录二:
图二的Matlab程序
x1=750:
1:
1750;
x2=1000:
1:
1500;
x3=1200:
1:
2000;
x4=1800:
1:
3500;
y1=2250+(x1-750)*2.7+5000;
y2=1800+(x2-1000)*2.2+1600;
y3=3750+(x3-1200)*1.8+2400;
y4=1800+(x4-1800)*3.8+1200;
plot(x1,y1,'r',x2,y2,'g',x3,y3,'k',x4,y4,'b');
grid;
xlabel('功率x');
ylabel('成本y');
title('功率与成本的关系');
legend('y1','y2','y3','y4');
text(1250,4000,'型号2');
text(1500,9200,'型号1');
text(1500,6600,'型号3');
text(2500,5500,'型号4');
附录三:
问题一的Lingo程序
1.第一时间段:
min=6350*x11+16.2*x11*y11-800*x12+13.2*x12*y12+11940*x13+10.8*x13*y13-11040*x14+22.4*x14*y14
x11*y11+x12*y12+x13*y13+x14*y14>=12000;
x11>=0;x11<=10;x12>=0;x12<=4;x13>=0;x13<=8;x14>=0;x14<=3;y11>=750;y11<=1750;
y12>=1000;y12<=1500;y13>=1200;y13<=2000;y14>=1800;y14<=3500;
@GIN(X11);@GIN(X12);@GIN(X13);@GIN(X14);
2.第二时间段:
min=5000*x21+x21*2250*3+(y21-750)*2.7*x21*3+1600*x22+1800*x22*3+(y22-1000)*2.2*x22*3+2400*x23+3750*x23*3+(y23-1200)*1.8*x23*3+1200*x24+4800*x24*3+(y24-1800)*3.8*x24*3;
x21*y21+x22*y22+x23*y23+x24*y24>=32000;
x21>=0;x21<=10;x22>=0;x22<=4;x23>=0;x23<=8;x24>=0;x24<=3;y21>=750;y21<=1750;
y22>=1000;y22<=1500;y23>=1200;y23<=2000;y24>=1800;y24<=3500;
@GIN(x21);@GIN(x22);@GIN(x23);@GIN(x24);
3.第三时间段:
min=5000*x31+x31*2250*3+(y31-750)*2.7*x31*3+1600*x32+1800*x32*3+(y32-1000)*2.2*x32*3+2400*x33+3750*x33*3+(y33-1200)*1.8*x33*3+1200*x34+4800*x34*3+(y34-1800)*3.8*x34*3;
x31*y31+x32*y32+x33*y33+x34*y34>=25000;
x31>=0;x31<=10;x32>=0;x32<=4;x33>=0;x33<=8;x34>=0;x34<=3;y31>=750;y31<=1750;
y32>=1000;y32<=1500;y33>=1200;y33<=2000;y34>=1800;y34<=3500;
@GIN(x31);@GIN(x32);@GIN(x33);@GIN(x34);
4.第四时间段:
min=5000*x41+x41*2250*2+(y41-750)*2.7*x41*2+1600*x42+1800*x42*2+(y42-1000)*2.2*x42*2+2400*x43+3750*x43*2+(y43-1200)*1.8*x43*2+1200*x44+4800*x44*2+(y44-1800)*3.8*x44*2;
x41*y41+x42*y42+x43*y43+x44*y44>=36000;
x41>=0;x41<=10;x42>=0;x42<=4;x43>=0;x43<=8;x44>=0;x44<=3;y41>=750;y41<=1750;
y42>=1000;y42<=1500;y43>=1200;y43<=2000;y44>=1800;y44<=3500;
@GIN(x41);@GIN(x42);@GIN(x43);@GIN(x44);
5.第五时间段:
min=5000*x51+x51*2250*4+(y51-750)*2.7*x51*4+1600*x52+1800*x52*4+(y52-1000)*2.2*x52*4+2400*x53+3750*x53*4+(y53-1200)*1.8*x53*4+1200*x54+4800*x54*4+(y54-1800)*3.8*x54*4;
x51*y51+x52*y52+x53*y53+x54*y54>=25000;
x51>=0;x51<=10;x52>=0;x52<=4;x53>=0;x53<=8;x54>=0;x54<=3;y51>=750;y51<=1750;
y52>=1000;y52<=1500;y53>=1200;y53<=2000;y54>=1800;y54<=3500;
@GIN(x51);@GIN(x52);@GIN(x53);@GIN(x54);
6.第六时间段:
min=5000*x61+x61*2250*4+(y61-750)*2.7*x61*4+1600*x62+1800*x62*4+(y62-1000)*2.2*x62*4+2400*x63+3750*x63*4+(y63-1200)*1.8*x63*4+1200*x64+4800*x64*4+(y64-1800)*3.8*x64*4;
x61*y61+x62*y62+x63*y63+x64*y64>=30000;
x61>=0;x61<=10;x62>=0;x62<=4;x63>=0;x63<=8;x64>=0;x64<=3;y61>=750;y61<=1750;
y62>=1000;y62<=1500;y63>=1200;y63<=2000;y64>=1800;y64<=3500;
@GIN(x61);@GIN(x62);@GIN(x63);@GIN(x64);
7.第七时间段:
min=5000*x71+x71*2250*2+(y71-750)*2.7*x71*2+1600*x72+1800*x72*2+(y72-1000)*2.2*x72*2+2400*x73+3750*x73*2+(y73-1200)*1.8*x73*2+1200*x74+4800*x74*2+(y74-1800)*3.8*x74*2;
x71*y71+x72*y72+x73*y73+x74*y74>=18000;
x71>=0;x71<=10;x72>=0;x72<=4;x73>=0;x73<=8;x74>=0;x74<=3;y71>=750;y71<=1750;
y72>=1000;y72<=1500;y73>=1200;y73<=2000;y74>=1800;y74<=3500;
@GIN(x71);@GIN(x72);@GIN(x73);@GIN(x74);
附录四:
问题二的Lingo程序
1.第一时间段
min=6350*x11+16.2*x11*y11-800*x12+13.2*x12*y12+11940*x13+10.8*x13*y13-11040*x14+22.4*x14*y14
x11*y11+x12*y12+x13*y13+x14*y14>=12000;
x1*(1750-y1)+x2*(1500-y2)+x3*(2000-y3)+x4*(3500-y4)>=2400;
x11>=0;x11<=10;x12>=0;x12<=4;x13>=0;x13<=8;x14>=0;x14<=3;
y11>=750;y11<=1750;y12>=1000;y12<=1500;y13>=1200;y13<=2000;y14>=1800;y14<=3500;
@GIN(X11);@GIN(X12);@GIN(X13);@GIN(X14);
2.第二时间段:
min=5000*x21+x21*2250*3+(y21-750)*2.7*x21*3+1600*x22+1800*x22*3+(y22-1000)*2.2*x22*3+2400*x23+3750*x23*3+(y23-1200)*1.8*x23*3+1200*x24+4800*x24*3+(y24-1800)*3.8*x24*3;
x21*y21+x22*y22+x23*y23+x24*y24>=32000;
x21*(1750-y21)+x22*(1500-y22)+x23*(2000-y23)+x24*(3500-y24)>=6400;
x21>=0;x21<=10;x22>=0;x22<=4;x23>=0;x23<=8;x24>=0;x24<=3;y21>=750;
y21<=1750;y22>=1000;y22<=1500;y23>=1200;y23<=2000;y24>=1800;y24<=3500;
@GIN(x21);@GIN(x22);@GIN(x23);@GIN(x24);
3.第三时间段:
min=5000*x31+x31*2250*3+(y31-750)*2.7*x31*3+1600*x32+1800*x32*3+(y32-1000)*2.2*x32*3+2400*x33+3750*x33*3+(y33-1200)*1.8*x33*3+1200*x34+4800*x34*3+(y34-1800)*3.8*x34*3;
x31*y31+x32*y32+x33*y33+x34*y34>=25000;
x31*(1750-y31)+x32*(1500-y32)+x33*(2000-y33)+x34*(3500-y34)>=5000;
x31>=0;x31<=10;x32>=0;x32<=4;x33>=0;x33<=8;x34>=0;x34<=3;y31>=750;
y31<=1750;y32>=1000;y32<=1500;y33>=1200;y33<=2000;y34>=1800;y34<=3500;
@GIN(x31);@G