数学建模电力生产问题.docx
《数学建模电力生产问题.docx》由会员分享,可在线阅读,更多相关《数学建模电力生产问题.docx(21页珍藏版)》请在冰豆网上搜索。
![数学建模电力生产问题.docx](https://file1.bdocx.com/fileroot1/2023-1/26/e4e77186-c910-41b8-9ffa-958bae059e3e/e4e77186-c910-41b8-9ffa-958bae059e3e1.gif)
数学建模电力生产问题
电力生产最优化问题
摘要
本文解决的是发电机使用的非线性最优化问题。
为满足每日电力需求,且总本钱最小,可把每天分为七个时间段,要计算一天的最小本钱即是分别求出每个时间段的最小本钱,从而累加得出一天的最小总本钱。
我们采用了LINGO软件实现整个流程,最终求出七个时段总本钱的最优解,即每天使用发电机的总本钱的最小值,并进展了误差分析,模型的评价与推广。
对于问题一:
对数据进展初步分析和处理后,考虑到数据的复杂性与多样性,我们应用普遍的分段思想以与最优化思想,建立二次规划模型。
将每天分为7个时段,通过利用第i时段型号j发电机的使用数量
与其功率
,并应用LINGO程序,最终分别计算出每个时段使用发电机所花费的本钱最小值
,然后累加得每天使用发电机的总本钱的最小值
,最终结果如下表:
0—6
6—9
9—12
12—14
14—18
18—22
22—24
型号1发电机使用数量
0
2
5
5
1
1
0
型号2发电机使用数量
4
4
4
4
4
4
4
型号3发电机使用数量
3
8
4
8
8
8
6
型号4发电机使用数量
0
3
3
3
1
3
0
时段最小本钱
176620
270400
197820
184930
245540
307800
85480
一天最小总本钱
1468590
对于问题二:
本问是要在问题一的根底上加以改良,要求在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,即发电机在任何时刻其输出功率均要满足要求,在计算电力需求量时,发电机要按80%的输出功率计算;最终得出此情况下每天最小本钱为1913537元。
最后,观察模型结果可发现,型号2与型号3发电机使用相当频繁,建议可适当增加此类发电机台数。
关键词:
lingo软件最优化思想二次规划模型
一.问题重述
问题背景:
电是我们这个社会不可缺少的资源之一。
我们身边处处都需要电,小到电灯、电扇,大到飞机、卫星。
对电力资源的合理利用是目前重要任务之一。
在可持续开展的社会中,如何节约资源、提高效率是当前社会面临的重要问题之一,此题即是要求合理分配发电机使用数量,以减小发电本钱的问题。
题目要求:
为满足每日电力需求〔单位为兆瓦〔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
只有在每个时段开始时才允许启动或关闭发电机。
与启动发电机不同,关闭发电机不需要付出任何代价。
本文要解决的问题有:
问题一:
试确定在每个时段应分别使用各型号发电机的数量,以使每天的总本钱最小,并求出最小总本钱。
问题二:
在现实生活中,用电量不可能恒定不变,所以为了更符合实际,增强方案的可行性,要求发电机要保存一定的发电能力,以应对突发情况。
所以假设:
在任何时刻,正在工作的发电机组必须留出20%的发电能力余量,以防用电量突然上升。
试确定每个时段又应分别使用各型号发电机的数量,以使每天的总本钱最小,并求出此时的最小总本钱。
二.模型的假设
假设1:
在每个时段开始时才允许启动或关闭发电机。
假设2:
发电机工作期间不发生任何故障。
假设3:
发电机之间的摩擦不消耗功率。
假设4:
发电机输出过程其功率始终保持不变。
假设5:
关闭发电机过程不做任何考虑。
假设6:
关闭和启动发电机时均是瞬时完成,不记相应使用的时间。
假设7:
发电机自身不消耗功率。
假设8:
在一时段,每小时所需要的功率
相等。
三.符号说明
符号
符号说明
时段,取1、2、3、4、5、6、7
发电机型号,取1、2、3、4
第i时段型号j发电机使用数量
第i时段单个型号j的功率
发电机在第i时段的工作时间
发电机在第i时段的总本钱
每天的总本钱
型号j发电机的最小输出功率
型号j发电机的固定本钱
型号j发电机工作时的每兆瓦边际本钱
每台型号j的启动本钱
第i时段j型号发电机的总启动本钱
第i时段每小时所需要的功率
四.模型的建立与求解
问题〔一〕
1.1模型分析
该问题是一个分段求解问题,比拟复杂不易求出准确的最优解,故只能近似求出其最优解来。
我们把每天分为7个时段,通过求每个时段发电机使用的总本钱来求每天的总本钱,即为各各时段总本钱之和。
然后要确定发电机在每个时段所使用的发电机的型号以与所使用的数量和输出的实际功率,而每个时段的总本钱是由三个局部组成的,分别为:
固定本钱、启动本钱、边际本钱。
据此对每个时段建立模型与其相应的约束条件,又各各时段中假如已经启动的发电机就不用再启动,所以无需相应的额外启动本钱,故第1时段与后6个时段计算情况不同,所以我们要分时段来求各时段的启动本钱。
1.2模型的建立
1.2.1确定目标函数
我们确定的目标函数是为了解决电力生产优化问题。
在满足需求量的情况下,为了使每天发电本钱最低,如此需要每个时段有最小本钱,所以我们建立如下目标函数
为了解决问题,我们进一步研究每个时段的最小本钱,由于本钱由启动本钱、固定本钱、边际本钱组成,所以我们经分析可得出第i时段的总本钱为:
因为
代表第i时段j型号发电机的总启动本钱,在第1是时段时,开多少发电机,就需要多少次启动本钱。
而从第二次开始,如果比上一时间段开机少,本时段就不需要此启动本钱;如果开机比上一时段多,如此只需要计算多出发电机的启动本钱。
所以,我们最终得出第i时段j型号的启动本钱公式为:
1.2.2确定约束条件
ⅰ.因为
代表第i时段型号j发电机使用数量,所以
应小于等于本型号发电机总的数量,且为整数,即:
〔
为整数〕
ⅱ.同时由于
代表第i时段单个型号j的功率,所以
的大小应该介于最小输出功率与最大输出功率之间,即:
ⅲ.发电机的发电量要满足电量需求,而
代表第i时段每小时所需要的功率,所以每小时发电量要大于等于
,即:
1.2.3综上所述,得到问题一的最优化模型
〔
必须取整数〕
1.3模型的求解.
首先,我们分析题目得到,总本钱由启动本钱、固定本钱、边际本钱组成。
启动本钱:
分析易知,启动本钱只与本型号发电机的数量有关,与其输出功率无关。
其值为:
各型号发电机数量与其各自的启动本钱之积的求和。
固定本钱:
因为当发电机接入电网时,其输出功率不应低于其最小输出功率,而发电机功率大于等于最小功率时有固定的每小时本钱〔即固定本钱〕,所以固定本钱与其输出功率大小无关,只与本型号启动的发电机数量有关。
其值为:
各型号发电机数量与其固定本钱、工作时间之积的求和。
边际本钱:
如果发电机输出功率高于最小功率,如此超出局部的功率每兆瓦每小时还存在一个本钱,即边际本钱,此局部本钱不仅与发电机数量有关,还与发电机输出功率有关。
其值为:
各型号发电机数量乘以工作时间乘以各自边际本钱乘以超出功率。
所以,经过上述分析,我们应用LINGO程序进展编程〔程序见附录〕计算,最终得出每时段各型号发电机的使用数量与其各自的功率。
由各型号发电机使用数量与各自功率可求出各时段的最小本钱与一天的最小总本钱,具体的数据见表一:
表一:
问题一求解结果
0—6
6—9
9—12
12—14
14—18
18—22
22—24
型号1发电机数量
0
2
5
5
1
1
0
型号1发电机功率
--
1750
1750
1720
1200
1750
--
型号2发电机数量
4
4
4
4
4
4
4
型号2发电机功率
1500
1500
1500
1500
1500
1500
1500
型号3发电机数量
3
8
4
8
8
8
6
型号3发电机功率
2000
2000
1200
2000
2000
2000
2000
型号4发电机数量
0
3
3
3
1
3
0
型号4发电机功率
--
2167
1816
1800
1800
2083
--
时段最小本钱
176620
270400
197820
184930
245540
307800
85480
一天最小总本钱
1468590
注:
表中“--〞表示发电机数量为0时,讨论功率没意义。
1.4问题一的结果分析
对表一进展深入观察可知:
型号2、型号3发电机使用频率相当高,且多为满功率工作,而型号1发电机虽然有10台,但其使用数量不多,所以建议对型号2、型号3进展定时维修,或增配型号2与型号3发电机数量,可适当减少型号1发电机的数量,以降低本钱。
经过对结果数据的再分析、再检验,结合网上的调查情况与相关资料,我们的结果确实较为符合实际情况,有较大的参考价值,比拟优越。
问题〔二〕
2.1模型的讨论
根据对问题一的分析,我们已经根本理清了计算发电本钱的思路。
在本问中,我们只需对问题一加以约束、改良,就可以得出结果。
本问所加要求为:
在任何时刻,正在工作的发电机组必须留出20%的发电余量,以防止突然上升。
我们对此问题进展安全性较高的保守计算:
在计算电力需求量时,由于发电机在某些时候可能保存了20%的发电能力,所以此时发电机要按80%的输出功率计算;而在考虑本钱与限制条件时,又因为发电机在某些时候可能会全力发动,所以此时发电机要按100%的输出功率计算,而其余的求解思路与问题一一致。
2.2模型建立
2.2.1确定目标函数
我们确定的目标函数是为了解决电力生产优化问题。
在满足需求量的情况下,为了使每天发电本钱最低,如此需要每个时段有最小本钱,所以我们建立如下目标函数
为了解决问题,我们进一步研究每个时段的最小本钱,由于本钱由启动本钱、固定本钱、边际本钱组成,所以我们经分析可得出第i时段的总本钱为:
因为
代表第i时段j型号发电机的总启动本钱,在第1是时段时,开多少发电机,就需要多少次启动本钱。
而从第二次开始,如果比上一时间段开机少,本时段就不需要此启动本钱;如果开机比上一时段多,如此只需要计算多出发电机的启动本钱。
所以,我们最终得出第i时段j型号的启动本钱公式为:
2.2.2确定约束条件
ⅰ.因为
代表第i时段型号j发电机使用数量,所以
应小于等于本型号发电机总的数量,且必须为整数,即:
〔
必须为整数〕
ⅱ.由于
代表第i时段单个型号j的功率,所以
的大小应该介于最小输出功率与最大输出功率之间。
然而,本文中因为发电机可能会保存20%的发电能力,所以,为了安全起见,在发电机以80%的发电能力工作时,其80%的输出功率也应大于等于最小输出功率,即:
ⅲ.发电机的发电量要满足电量需求,而
代表第i时段每小时所需要的功率,所以每小时发电量要大于等于
。
然而,本文中因为发电机可能会保存20%的发电能力,所以,为了安全起见,在发电机以80%的发电能力工作时,其每小时发电量也应要大于等于
,即:
2.2.3综上所述,得到问题二的最优化模型
〔
必须取整数.〕
2.3模型的求解
本问求解过程与问题一类似,只需注意以下几点:
因为工作的发电机组必须留出20%的发电余量,所以限制条件中的发电量需求条件、输出功率条件均有所改变,按最新修改的问题二最优化模型,利用LINGO软件重新编程〔程序见附录〕计算,最终得出每时段各型号发电机的使用数量与其功率。
由各型号发电机使用数量与其功率可求出各时段的最小本钱与一天的最小总本钱,具体数据见表二。
表二:
问题二求解结果
0—6
6—9
9—12
12—14
14—18
18—22
22—24
型号1发电机数量
0
6
7
8
4
8
1
型号1发电机功率
--
1750
1750
1750
1750
1656
937
型号2发电机数量
4
4
4
4
4
4
4
型号2发电机功率
1250
1500
1500
1500
1500
1500
1390
型号3发电机数量
5
8
4
8
8
8
8
型号3发电机功率
2000
2000
1500
2000
2000
2000
2000
型号4发电机数量
0
3
3
3
1
1
0
型号4发电机功率
--
2500
2333
3000
2250
2250
--
时段最小本钱
230500
360000
258870
247800
317720
388820
109827
一天最小总本钱
1913537
注:
表中“--〞表示发电机数量为0时,讨论功率没意义。
2.4模型二的分析
对表二进展深入观察可知:
型号2、型号3发电机使用频率相当高,且多为满功率工作。
所以建议对型号2、型号3进展定时维修,或增配型号2与型号3发电机数量。
通过与表一比照分析得:
型号1发电机在问题二的前提下使用数量得以提高。
本模型中,在计算电力需求量时,由于发电机在某些时候可能保存了20%的发电能力,所以此时发电机要按80%的输出功率计算;而在考虑本钱与限制条件时,又因为发电机在某些时候可能会全力发动,所以此时发电机要按100%的输出功率计算。
分析易知,这样分析,安全性大大提高。
本模型对题目要求〔发电机保存20%发电能力〕考虑周到,大大提高了模型的安全性,虽然短期本钱略有所加,但从长远角度来看,还是大大降低了发电厂的本钱,增加了收益。
五.模型的误差分析
此题主要是一个有关分段求最优解的问题,因此其最终解是一个近似值,存在一定的误差,前面对于模型的假设可知,发电机自身不消耗功率那是不可能的,其之间由于有摩擦力以与要散热等都需要消耗功率,另外,发电机输出过程其功率始终保持不变也是理想情况下才存在的,所以也有一定的误差,还有在开启以与关闭发电机时不仅有功率损耗方面的误差,而且还有时间方面的误差,这些都会对模型的建立有一定程度上的影响。
六.模型评价
1.模型的优点
1.1本文采用了最优化的算法。
在满足使用的前提下,运用最优化算法,使每个时间段使用的发电机数量最少以达到提高效率,降低本钱的目的。
1.2分七个时间段,每个时间段的计算公式相当类似,计算时只需改变其中的几个常数与变量围即可,简单方便。
1.3本文解答的第二问中,运用了最安全保守的计算体系,提高了本算法的可行性,使之更加符合实际,有较大的调整空间。
从长远角度看,也降低了本钱,增加收益。
1.4我们建立的数学模型,求出了第一天发电机使用计划。
通过我们求得各时段各型号发电机使用的数量分析看来,在后来的时间24:
00与00:
00的交替过程中,只须改变几台发电机的开关情况。
第二天就可以依然按着前一天的计划方案继续工作,这样就构成了一个循环,无论使用计划时间多长都可以实现。
1.5本文采用了lingo程序编程。
利用lingo程序方便解决线性规划问题的优点,来得出各时段各型号发电机使用的数量以使其本钱最低。
1.6有顺序,有步骤地给出优化方案,把复杂的问题简单明朗化,显得通俗易懂。
2.模型的不足
2.1本文的算法虽然原理较为简单,但是运算时间相对而言较长。
2.2由于分时段计算,且后一时间段的计算需要依靠前一时间段的计算结果,所以此算法独立性不强,需要每个时间段的结果必须准确。
七.模型的改良与推广
1、模型的改良:
〔1〕建模时没有考虑发电机启动机器关闭的时间消耗,假如考虑这些时间消耗将会使费用相应的增加,因此我们可以对该模型启动以与关闭时间进展缩短;
〔2〕所建的模型是针对其输出功率始终保持不变的,但实际上其在传送以与散热等方面都会损耗,因此功率也是不断变化的,假如考虑这些损耗,将会使计算趋于复杂不易得到近似的最优解,因此应改变发电设施使输出功率根本保持不变或变化很小。
〔3〕由于发电机可能发生故障,所以建议每种型号都备份几台,特别是使用频率高的型号2、型号3发电机。
2、模型的推广:
该种分段式求最优解的问题在经济市场经常出现,如股票的分段涨跌,发电厂电力的配置,银行不同方式的存利率,以与对不同市场的投资。
八.参考文献
[1]宣明数学建模与数学实验,大学2010
[2]金星优化建模与LINDO/LINGO软件,清华大学2005
[3]宋来忠数学建模与实验,科学2005
九.附录
问题一程序:
!
第1时段;
model:
min=5000*x11+2250*6*x11+(y11-750)*6*2.7*x11+1600*x12+1800*6*x12+(y12-1000)*6*2.2*x12+2400*x13+3750*6*x13+(y13-1200)*6*1.8*x13+1200*x14+4800*6*x14+(y14-1800)*6*3.8*x14;
x11*y11+x12*y12+x13*y13+x14*y14>=12000;
x11>=0;x11<=10;y11>=750;y11<=1750;
x12>=0;x12<=4;y12>=1000;y12<=1500;
x13>=0;x13<=8;y13>=1200;y13<=2000;
x14>=0;x14<=3;y14>=1800;y14<=3500;
gin(x11);gin(x12);gin(x13);gin(x14);
end
!
第2时段;
model:
min=5000*x21+2250*3*x21+(y21-750)*3*2.7*x21+1600*if(4-x22#ge#0,0,x22-4)+1800*3*x22+(y22-1000)*3*2.2*x22+2400*if(3-x23#ge#0,0,x23-3)+3750*3*x23+(y23-1200)*3*1.8*x23+1200*x24+4800*3*x24+(y24-1800)*3*3.8*x24;
x21*y21+x22*y22+x23*y23+x24*y24>=32000;
x21>=0;x21<=10;y21>=750;y21<=1750;
x22>=0;x22<=4;y22>=1000;y22<=1500;
x23>=0;x23<=8;y23>=1200;y23<=2000;
x24>=0;x24<=3;y24>=1800;y24<=3500;
gin(x21);gin(x22);gin(x23);gin(x24);
end
!
第3时段;
model:
min=5000*if(5-x31#ge#0,0,x31-5)+2250*3*x31+(y31-750)*3*2.7*x31+1600*if(4-x32#ge#0,0,x32-4)+1800*3*x32+(y32-1000)*3*2.2*x32+2400*if(8-x33#ge#0,0,x33-8)+3750*3*X33+(y33-1200)*3*3.8*x33+1200*if(3-x34#ge#0,0,x34-3)+4800*3*x34+(y34-1800)*3*3.8*x34;
x31*y31+x32*y32+x33*y33+x34*y34>=25000;
x31>=0;x31<=10;y31>=750;y31<=1750;
x32>=0;x32<=4;y32>=1000;y32<=1500;
x33>=0;x33<=8;y33>=1200;y33<=2000;
x34>=0;x34<=3;y34>=1800;y34<=3500;
gin(x31);gin(x32);gin(x33);gin(x34);
end
!
第4时段;
model:
min=5000*if(5-x41#ge#0,0,x41-5)+2250*2*x41+(y41-750)*2*2.7*x41+1600*if(4-x42#ge#0,0,x42-4)+1800*2*x42+(y42-1000)*2*2.2*x42+2400*if(8-x43#ge#0,0,x43-8)+3750*2*x43+(y43-1200)*2*1.8*x43+1200*if(2-x44#ge#0,0,x44-2)+4800*2*x44+(y44-1800)*2*3.8*x44;
x41*y41+x42*y42+x43*y43+x44*y44>=36000;
x41>=0;x41<=10;y41>=750;y41<=1750;
x42>=0;x42<=4;y42>=1000;y42<=1500;
x43>=0;x43<=8;y43>=1200;y43<=2000;
x44>=0;x44<=3;y44>=1800;y44<=3500;
gin(x41);gin(x42);gin(x43);gin(x44);
end
!
第5时段;
model:
min=5000*if(6-x51#ge#0,0,x51-6)+2250*4*x51+(y51-750)*4*2.7*x51+1600*if(4-x52#ge#0,0,x52-4)+1800*4*x52+(y52-1000)*4*2.2*x52+2400*if(8-x53#ge#0,0,x53-8)+3750*4*x53+(y53-1200)*4*1.8*x53+1200*if(3-x54#ge#0,0,x54-3)+4800*4*x54+(y54-1800)*4*3.8*x54;
x51*y51+x52*y52+x53*y53+x54*y54=25000;
x51>=0;x51<=10;y51>=750;y51<=1750;
x52>=0;x52<=4;y52>=1000;y52<=1500;
x53>=0;x53<=8;y53>=1200;y53<=2000;
x54>=0;x54<=3;y54>=1800;y54<=3500;
gin(x51);gin(x52);gin(x53);gin(x54);
end
!
第6时段;
model:
min=5000*x61+2250*4*x61+(y61-750)*4*2.7*x61+1600*if(4-x62#ge#0,0,x62-4)+1800*4*x62+(y62-1000)*4*2.2*x62+2400*if(8-x63#ge#0,0,x63-8)+3750*4*x63+(y63-1200)*4*1.8*x63+1200