电力生产问题数学模型
电力生产问题数学模型
————————————————————————————————作者:————————————————————————————————日期:
电力生产问题数学模型
摘要
本文研究电力生产问题中的最优化电力资源配置,属于求解优化电力配置下的最小成本问题。由于电力生产有非线性、多变量等特点,所以我们基于在每一时间段非线性局部最优的前提下,建立整体的单目标多变量的非线性最优化模型 。
因此对于研究的课题,我们建立了一个有约束条件的目标函数的最优化模型来求解。在该模型的基础上我们建立起解决问题所需模型。
解决问题(1)时,我们运用LINGO 工具求解所建立的数学模型,得到每个时段的台数和成本如下表:(详细数据见)
时段1 时段2 时段3 时段4 时段5 时段6 时段7 总成本/元
型号1 0 2 0 2 0 1 0
0 1750 750 1750 1000 1300 750 … … … … … … … … 型号4
0 3 3 3 3 3 3 0
2166.6
1800
3500
1800
1800
解决问题(2)时,我们从节约能源和成本的前提出发,让在工作的每一台发电机保留出20%的发电能力,而不是让其发出多于需求电量的20%白白浪费,因此我们将“每个时段的电力需求”这个约束条件由问题(1)中的j ij j D P m ≤≤改为
8.0?≤≤j ij j D P m 。得到每个时段的台数和成本如下表:(详细数据见)
时段1 时段2 时段3 时段4 时段5 时段6 时段7 总成本/元
型号1 0 5 0 8 1 5 0
0 1400 1400 1400 1400 1400 0 … … … … … … … … 型号4
3 3 3 3 3 3 3 1866.6
2466.6
2466.6
2400
2000
1800
1800
关键词:非线性 整体最优化 LIGNO 软件
时 段
型
号 时 段
型
号
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模型假设
假设1:题目中是给的数据真实可靠,具有普遍性。
假设2:不同型号发电机之间独立运行互不影响。
假设3:电动机的启动与关闭所需时间可以忽略不计。
假设4:从前一天的24时到今天的0时这一分界点视为间断的,机子全部关闭。
2.2符号说明
表一:符号说明
符号
说明
n表示第i时间段型号j发电机的台数
ij
P表示第i时间段型号j发电机的功率
ij
P表示第i时间段需要的总功率
i
t表示第i时间段的工作时间
i
m表示型号j发电机的最小功率
j
M表示型号j发电机的最大功率
j
G固定成本
ij
Q启动成本
ij
Q一台j型号发电机的固定成本
j
B边际成本
ij
b型号发电机的边际成本
j
w一天总成本
w表示第i时间段型号j发电机的成本
ij
i表示时间段
j表示型号
x表示j型发动机提供的台数
j
S表示第i时段启动的j型发动机的台数
ij
3.问题分析
针对问题(1):在满足约束条件的情况下要求成本最小,总成本=总启动成本+总固定成本+总边际成本,ij ij ij B Q G w ++=。.其中每种型号的启动成本、固定成本和每兆的边际成本是已知的常数(题目以表格形式呈现)。
本题的变量为:各个时间段的不同型号的发电机台数ij n 以及发电机的实际输出功率
ij p 。要求总启动成本和总固定成本必需知道7个时间段内不同型号发电机台数,而
求解总边际成本必需知道各个时间段内不同型号发电机输出功率及台数。本题约束条件主要有3个:7个时间段的所需的输出功率;不同发电机的台数数量限制;不同发电机的功率有一个范围限制。我们假设每一个时间段开始以后才可以开启或关闭发电机,与启动发电机不同关闭发电机不需要任何代价。由此,我们建立一个简单的目标函数最优化模型。我们在后面将运用LINGO 求解。
针对问题(2):发电机组必须留出20%的发电能力余量情况下,求解成本最小值 即要求每个时段最大输出功率控制在80%就能满足需求,在此基础上求解。和(1)类似我们可以建立目标函数最优化模型求解
4 数据分析
将每一时段作为一个局部优化问题进行分析,建立局部非线性规划模型:
固 定 成 本ij
G
启 动 成 本ij
Q
边 际 成 本
ij
B
总 成 本
w
目标函数:
()
[]∑∑
==
?
+
?
?
?
+
?
=7
1
4
1
-
min
i j
ij
j
ij
i
j
j
ij
ij
j
S
Q
n
t
b
m
P
n
G
对于问题一:利用lingo软件(代码见附录一)求出局部最优解,其方案如下:
表二:第一问答案数据
时段机组型号1 型号2 型号3 型号4
0-6 数量0 4 3 0
0-6 输出功率0 1500 2000 0
6-9 数量 2 4 8 3
6-9 输出功率1750 1500 2000 2166.6
9-12 数量0 4 7 3
9-12 输出功率0 1400 2000 1800
12-14 数量 2 4 8 3
12-14 输出功率1750 1500 2000 3500
14-18 数量0 4 7 3
14-18 输出功率0 1400 2000 1800
18-22 数量 1 4 8 3
18-22 输出功率1750 1500 2000 2083.3
22-24 数量0 4 3 3
22-24 输出功率0 1500 2000 2000
对于问题二:将利用lingo软件(代码见附录一)求解出如下方案:
表三:第二问答案数据
时段机组型号1 型号2 型号3 型号4
0-6 数量0 4 1 3
0-6 输出功率0 1200 1600 1866.7
6-9 数量 5 4 8 3
6-9 输出功率1400 1200 1600 2466.7
9-12 数量0 4 8 3
9-12 输出功率0 1200 1600 2466.7
12-14 数量8 4 8 3
12-14 输出功率1400 1200 1600 2399.9
14-18 数量 1 4 8 3
14-18 输出功率140
1200 1600 2000
18-22 数量 5 4 8 3 18-22 输出功率1400 1200 1600 1800 22-24 数量0 4 5 3 22-24 输出功率0 1150 1600 1800
5 问题一的求解
5.1 模型的建立 5.1.1 目标函数的确定
本文研究的是如何分配发电机才可以用最少的成本获得最大的发电量,根据题目要求,我们求解过程如下:
发电机每天的工作成本:
∑∑===71
4
1
i j ij
w w
ij ij ij ij w G Q B =++
(1)第i 个时间段j 型发电机的固定成本:
ij j ij G G n =?
(2)第i 个时间段j 型发电机的边际成本:
()ij ij j j i ij B P m b t n =-???
(3)第i 个时间段j 型发电机的启动成本:
ij j ij S Q Q ?=
(4)第i 个时间段j 型发电机需要重新开启的台数:
2
|-n |)n -(n S 1)j -(i ij 1)j -(i ij ij n +=
(5)第i 个时间段的总发电功率:
4
1
i ij ij
j P P n ==?∑
5.1.2约束条件的确定
(1) 各型号发电机能使用的台数需小于等于所提供的台数,且必定为自然数:
1,2...4)
(j ;,0=∈≤≤N n x n ij j ij
(2)发电机的发电功率需不大于最大发电功率,不小于最小发电功率:
4)1,2(j ;, =≤≤ij ij j M P m
(3)所有发电机的发电功率总和需不小于各时段的需求功率:
,4)1,2,(i ;P =≥i ij P
5.1.3建立发电成本最低模型如下:
()[]∑∑==?+???+?=71
4
1
S -min i j ij j ij i j j ij ij j Q n t b m P n G w
;
;4,,2,17,,2,1;
,;
;0;P . ==???????∈≤≤≤≤≥j i N S n M P m x n P t s ij ij j ij j ij ij i ij
应用lingo (程序见附录一)进行求解如下表:
表四:所需台数和发电功率
时段 机组 型号1 型号2 型号3 型号4 0-6 数量 0 4 3 0 0-6 输出功率 0 1500 2000 0 6-9 数量 2 4 8 3 6-9 输出功率 1750 1500 2000 2166.6 9-12 数量 0 4 7 3 9-12 输出功率 0 1400 2000 1800 12-14 数量 2 4 8 3 12-14 输出功率 1750 1500 2000 3500 14-18 数量 0 4 7 3 14-18 输出功率 0 1400 2000 1800 18-22 数量 1 4 8 3 18-22 输出功率 1750 1500 2000 2083.3 22-24 数量 0 4 3 3 22-24
输出功率
1500
2000
2000
最后所得结果是最小成本是1439270
5.2.1 结果分析
从已知数据可知各时段的用电需求和成本科的如下两图:
表五:各时段的用电需求
10000
20000
30000
40000
1234567
各时间段用电需求量
时间段
需
求
量/
兆
瓦
各时间段用电需求量
表六:各成本最大最小值
表七:第一问的各型号数量
最小边际成本
(元/小时)
最大边际成本
(元/小时)
最小启动成本
(台/元)
最大启动成本
(台/元)
型号 3 4 4 1
量值 1.8 3.8 1200 5000
表八:第一问中各型号发电机的功率
结合每天各时段电力需求图分析可得,在电力需求量最大的2、4、6时间段,输出功率最大的型号4发电机全部使用,虽然其单位固定成本和边际成本较高,但它的启动成本最低,在需求电量大幅度增加时,使用输出功率最大的型号4发电机可降低发电机的启动成本,从而使得总成本较小。
6问题二的求解
6.1 模型的建立
题目要求发电机要保留自身发电能力的20%,以防当用电量突然增加时造成对发电机的损坏,我们只需限制每台发电机的实际功率不超过自身最大功率的80%即可。具体求解过程如下:
6.1.1 目标函数的确定
本文研究的是如何分配发电机才可以用最少的成本获得最大的发电量,根据题目要求,我们求解过程如下:
发电机每天的工作成本:
∑∑===71
4
1
i j ij
w w
ij ij ij ij
w G Q B =++
(1)第i 个时间段j 型发电机的固定成本:
ij j ij G G n =?
(2)第i 个时间段j 型发电机的边际成本:
()ij ij j j i ij B P m b t n =-???
(3)第i 个时间段j 型发电机的启动成本:
ij j ij S Q Q ?=
(5)第i 个时间段j 型发电机需要重新开启的台数:
2
|-n |)n -(n S 1)j -(i ij 1)j -(i ij ij n +=
(5)第i 个时间段的总发电功率:
4
1
i ij ij
j P P n ==?∑
6.1.2约束条件的确定
(1) 各型号发电机能使用的台数需小于等于所提供的台数,且必定为自然数:
1,2...4)
(j ;,0=∈≤≤N n x n ij j ij
(4)发电机的发电功率需不大于最大发电功率,不小于最小发电功率:
4)1,2(j 80%;, =?≤≤ij ij j M P m
(5)所有发电机的发电功率总和需不小于各时段的需求功率:
,7)1,2,(i ;P =≥i ij P
6.2.3建立发电成本最低模型如下:
()[]∑∑==?+???+?=71
4
1
S -min i j ij j ij i j j ij ij j Q n t b m P n G w
;
;4,,2,17,,2,1;,80%;
;0;P . ==???
????
∈?≤≤≤≤≥j i N S n M P m x n P t s ij ij j ij j ij ij i ij
应用lingo(程序见附录二)进行求解如下表:
表九:所需台数和发电功率
时段机组型号1 型号2 型号3 型号4 成本
0-6 数量0 4 1 3
176620 0-6 输出功率0 1200 1600 1866.7
6-9 数量 5 4 8 3
270400 6-9 输出功率1400 1200 1600 2466.7
9-12 数量0 4 8 3
171950 9-12 输出功率0 1200 1600 2466.7
12-14 数量8 4 8 3
206000 12-14 输出功率1400 1200 1600 2399.9
14-18 数量 1 4 8 3
233400 14-18 输出功率1400 1200 1600 2000
18-22 数量 5 4 8 3
310200 18-22 输出功率1400 1200 1600 1800
22-24 数量0 4 5 3
70700 22-24 输出功率0 1150 1600 1800
最后所得结果是最小成本是1518675。
6.3 结果分析
表十:第二问的各型号数量
表十一:第二问的时间段与功率的关系
结合每天各时段电力需求图分析可得,在电力需求量最大的2、4、6时间段,输出功率最大的型号4发电机全部使用,虽然其单位固定成本和边际成本较高,但它的启动成本最低,在需求电量大幅度增加时,使用输出功率最大的型号4发电机可降低发电机的启动成本,从而使得总成本较小。
7 模型的评价改进及推广
7.1模型的评价
优点:
(1)本文通过目标函数最优化模型解决电力生产配置问题,达到最大程度的减少成本,又从局部到整体的考虑问题。具有全面性。
(2)利用数型结合的思想,将数图有机的结合起来,便于发现问题并给予解决。(3)合理的假设使问题得到科学的解释,从而化抽象为具体,便于研究。
缺点:
没有事先给电动机进行性能的评估,以便以后问题的研究。
7.2模型的改进
我们将问题中在每个时间段应用的发电机次数进行了统计,然后得出了哪种发电
机的性能较好,然后在建模的过程中以性能好的发电机为基础,进行优化配置其他发电机。统计显示如下:
问题一应用发电机型号
时段
型号1 型号2 型号3 型号4
型号
0~6 0 50% 50% 0
6~9 10.9% 18.8% 50% 20.3%
9~12 0 22.4% 56% 21.6%
12~14 9.7% 16.7% 44.4% 29.2%
14~18 0 22.4% 56% 21.6%
18~22 5.8% 20% 53.3% 20.9%
22~24 0 33.3% 33.3% 33.4%
平均比重3.8% 26.2% 49% 21%
由此得出本问题应该首先选择型号2,3做为选择基准,然后将型号1,4做为辅助进行配置发电。
问题二应用发电机型号
时段
型号1 型号2 型号3 型号4
型号
0~6 0 40% 13.3% 46.7%
6~9 21% 15% 40% 23.1%
9~12 0 22.4% 56% 21.6%
12~14 31.1% 13.3% 35.6% 20%
14~18 5.6% 19.2% 51.2% 24%
18~22 23.3% 16% 42.7% 18%
22~24 0 25.6% 44.4% 30%
平均比重11.7% 21.19% 39.77% 27.34%
由此得出本问题应该首先选择型号3,4做为选择基准,然后将型号1,2做为辅助进行配置发电。
7.3模型的推广
我们建立的模型不仅可以用于电力生产配置方面,还可以应用于其他有输电,配电,购电等发电厂的诸多问题。
参考文献
[1](美)米切斯切特(Mark M.Meerschaert)著;刘来福等译。数学建模方法与分析(原书第3版)[M],北京:机械工业出版社,2009.5
[2]lingo教程[EB/OL]。
[3]张国立,现货市场功率分配问题模型及其求解算法研究 [J],2006.5
[4]刘伟达,电力生产决策支持系统中评估模型的研究与运用[J] ,2004.12.23
附录
附录一:应用lingo软件计算的程序代码
第一阶段:
min=5000*n11+1600*n12+2400*n13+1200*n14+6*(2250*n11+1800*n12+3750*n13+480 0*n14)+6*(2.7*n11*(p11-750)+2.2*n12*(p12-1000)+1.8*n13*(p13-1200)+3.8*n14 *(p14-1800));
n11*p11+n12*p12+n13*p13+n14*p14>=12000;
@bnd(0,n11,10);
@bnd(0,n12,4);
@bnd(0,n13,8);
@bnd(0,n14,3);
@bnd(750,p11,1750);
@bnd(1000,p12,1500);
@bnd(1200,p13,2000);
@bnd(1800,p14,3500);
@gin(n11);@gin(n12);@gin(n13);@gin(n14);
第二阶段:
min=5000*(n21-n11)+1600*(n22-n12)+2400*(n23-n13)+1200*(n24-n14)+3*(2250*n 21+1800*n22+3750*n23+4800*n24)+3*(2.7*n21*(p21-750)+2.2*n22*(p22-1000)+1. 8*n23*(p23-1200)+3.8*n24*(p24-1800));
n21*p21+n22*p22+n23*p23+n24*p24>=32000;
@bnd(0,n21,10);
@bnd(0,n22,4);
@bnd(0,n23,8);
@bnd(0,n24,3);
@bnd(750,p21,1750);
@bnd(1000,p22,1500);
@bnd(1200,p23,2000);
@bnd(1800,p24,3500);
@gin(n21);@gin(n22);@gin(n23);@gin(n24);
n11=0;n12=4;n13=3;n14=0;
第三阶段:
min=5000*(n31-n21)+1600*(n32-n22)+2400*(n33-n23)+1200*(n34-n24)+3*(2250*n 31+1800*n32+3750*n33+4800*n34)+3*(2.7*n31*(p31-750)+2.2*n32*(p32-1000)+1. 8*n33*(p33-1200)+3.8*n34*(p34-1800));
n31*p31+n32*p32+n33*p33+n34*p34>=25000;
@bnd(0,n31,10);
@bnd(0,n32,4);
@bnd(0,n33,8);
@bnd(0,n34,3);
@bnd(750,p31,1750);
@bnd(1000,p32,1500);
@bnd(1200,p33,2000);
@bnd(1800,p34,3500);
@gin(n31);@gin(n32);@gin(n33);@gin(n34);
n21=2;n22=4;n23=8;n24=3;
第四阶段:
min=5000*(n41-n31)+1600*(n42-n32)+2400*(n43-n33)+1200*(n44-n34)+2*(2250*n 41+1800*n42+3750*n43+4800*n44)+2*(2.7*n41*(p41-750)+2.2*n42*(p42-1000)+1. 8*n43*(p43-1200)+3.8*n44*(p44-1800));
n41*p41+n42*p42+n43*p43+n44*p44>=36000;
@bnd(0,n41,10);
@bnd(0,n42,4);
@bnd(0,n43,8);
@bnd(0,n44,3);
@bnd(750,p41,1750);
@bnd(1000,p42,1500);
@bnd(1200,p43,2000);
@bnd(1800,p44,3500);
@gin(n41);@gin(n42);@gin(n43);@gin(n44);
n31=0;n32=4;n33=7;n34=3;
第五阶段:
min=5000*(n51-n41)+1600*(n52-n42)+2400*(n53-n43)+1200*(n54-n44)+4*(2250*n 51+1800*n52+3750*n53+4800*n54)+4*(2.7*n51*(p51-750)+2.2*n52*(p52-1000)+1. 8*n53*(p53-1200)+3.8*n54*(p54-1800));
n51*p51+n52*p52+n53*p53+n54*p54>=25000;
@bnd(0,n51,10);
@bnd(0,n52,4);
@bnd(0,n53,8);
@bnd(0,n54,3);
@bnd(750,p51,1750);
@bnd(1000,p52,1500);
@bnd(1200,p53,2000);
@bnd(1800,p54,3500);
@gin(n51);@gin(n52);@gin(n53);@gin(n54);
n41=2;n42=4;n43=8;n44=3;
第六阶段:
min=5000*(n61-n51)+1600*(n62-n52)+2400*(n63-n53)+1200*(n64-n54)+4*(2250*n 61+1800*n62+3750*n63+4800*n64)+4*(2.7*n61*(p61-750)+2.2*n62*(p62-1000)+1. 8*n63*(p63-1200)+3.8*n64*(p64-1800));
n61*p61+n62*p62+n63*p63+n64*p64>=30000;
@bnd(0,n61,10);
@bnd(0,n62,4);
@bnd(0,n63,8);
@bnd(0,n64,3);
@bnd(750,p61,1750);
@bnd(1000,p62,1500);
@bnd(1200,p63,2000);
@bnd(1800,p64,3500);
@gin(n61);@gin(n62);@gin(n63);@gin(n64);
n51=0;n52=4;n53=7;n54=3;
第七阶段:
min=5000*(n71-n61)+1600*(n72-n62)+2400*(n73-n63)+1200*(n74-n64)+2*(2250*n 71+1800*n72+3750*n73+4800*n74)+2*(2.7*n71*(p71-750)+2.2*n72*(p72-1000)+1. 8*n73*(p73-1200)+3.8*n74*(p74-1800));
N71*p71+n72*p72+n73*p73+n74*p74>=18000;
@bnd(0,n71,10);
@bnd(0,n72,4);
@bnd(0,n73,8);
@bnd(0,n74,3);
@bnd(750,p71,1750);
@bnd(1000,p72,1500);
@bnd(1200,p73,2000);
@bnd(1800,p74,3500);
@gin(n71);@gin(n72);@gin(n73);@gin(n74);
N61=1;n62=4;n63=8;n64=3;
附录二:应用lingo软件计算的程序代码
第一阶段:
min=5000*n11+1600*n12+2400*n13+1200*n14+6*(2250*n11+1800*n12+3750*n13+480 0*n14)+6*(2.7*n11*(p11-750)+2.2*n12*(p12-1000)+1.8*n13*(p13-1200)+3.8*n14 *(p14-1800));
n11*p11+n12*p12+n13*p13+n14*p14>=12000;
@bnd(0,n11,10);
@bnd(0,n12,4);
@bnd(0,n13,8);
@bnd(0,n14,3);
@bnd(750,p11,1400);
@bnd(1000,p12,1200);
@bnd(1200,p13,1600);
@bnd(1800,p14,2800);
@gin(n11);@gin(n12);@gin(n13);@gin(n14);
第二阶段:
min=5000*(n21-n11)+1600*(n22-n12)+2400*(n23-n13)+1200*(n24-n14)+3*(2250*n 21+1800*n22+3750*n23+4800*n24)+3*(2.7*n21*(p21-750)+2.2*n22*(p22-1000)+1. 8*n23*(p23-1200)+3.8*n24*(p24-1800));
n21*p21+n22*p22+n23*p23+n24*p24>=32000;
@bnd(0,n21,10);
@bnd(0,n22,4);
@bnd(0,n23,8);
@bnd(0,n24,3);
@bnd(750,p21,1400);
@bnd(1000,p22,1200);
@bnd(1200,p23,1600);
@bnd(1800,p24,2800);
@gin(n21);@gin(n22);@gin(n23);@gin(n24);
n11=0;n12=4;n13=1;n14=3;
第三阶段:
min=5000*(n31-n21)+1600*(n32-n22)+2400*(n33-n23)+1200*(n34-n24)+3*(2250*n 31+1800*n32+3750*n33+4800*n34)+3*(2.7*n31*(p31-750)+2.2*n32*(p32-1000)+1. 8*n33*(p33-1200)+3.8*n34*(p34-1800));