1、第 1 页 共 12 页关于电力生产优化的数学模型目录一、摘要 4二、问题重述与分析 4三、模型假设 6四、符号说明 7五、模型建立与求解 8六、模型优缺点分析 12七、参考文献 13八、附录(程序代码) 142关于电力生产优化的数学模型一、摘要本文主要针对电力公司的生产优化问题,为了实现最大程度地利用资源,不使水利资源过多的浪费。我们运用线性代数的基本理论知识,利用差分方程思想,建立数学模型,来达到水利水电资源的优化配置。充分考虑水源流入量,水库库存量,发电能力,用电需求等几个方面的约束条件,分别通过 LINGO 和 MATLAB 两种不同的软件得出相同的结果。经过最优解检验方法对结果进行检
2、验,证实结果为模型的最优解,可以提高电力公司的经济效益。关键字:电力生产 线性规划 LINGO MATLAB 经济效益二、问题重述与分析某电力公司经营两座发电站分别位于两个水库上,位置如下图所示:3水源 A 已知发电站 A 可以将水库 A 的 1 万 3m的水转换为 400 千度电能,发电站 B 的 1 万 3m的水转换为 200 千度电能。发电站 A、B 每个月的最大发电能力分别是 60000 千度,35000 千度。每个月最多有50000 千度电能够以 200 元/千度的价格售出,多余的电能只能够以140 元/ 千度的价格售出。水库 A,B 的其他有关数据如下(单位:万立方米)水库 A 水
3、库 B水库最大蓄水量 2000 1500本月 200 40水源流入水量 下月 130 15水库最小蓄水量 1200 800水库目前蓄水量 1900 850请你为该电力公司制定本月和下月的生产经营计划。 (千度是非水源B水库 A 发电站A水库 B 发电站B4国际单位制单位,1 千度= 310 千瓦时)由以上内容可知,这个优化问题的目标是使每月获利最大,要作决策是生产计划,那么每月应用多少水来发电呢?通过分析我们了解到,模型受到四条件限制:水源流入量,水库库存量,发电能力,用电需求。其实,问题本身就是一个线性规划问题,它是要求我们利用线性代数的有关知识来解决放多少水,蓄多少水才能使水电公司收益最大
4、。这样我们可以根据题中的数据,利用题中的一系列约束条件建立目标函数,即线性规划方程。为了方便,我们以一个月为一个周期,考虑在各个周期内电力公司发电和赢利状况。三、模型假设1、一个月结束,所有发电设备正常运行,不影响下一个月的发电。2、水资源流入水量是在每个月开始时发生的。3、水库中的水允许不发电而放走。4、不发生洪涝、干旱等灾害。5、电力公司发电系统均能正常运作。6、所有发生电量都能售出。7、售出不受价值规律的约束。8、水库水流一直处在动态过程。9、发电站 A、B 发电互不影响。5四、符号说明1、X1:本月以高价出售的电量。2、X2:下月以高价出售的电量。3、Y1:本月以低价出售的电量。4、Y
5、2:下月以低价出售的电量。5、S:水库发电所获得的最大效益。 (单位:万元)6、 La1:A 水库本月发电用水量。 (单位:万 m3)7、 La2:A 水库下月发电用水量 。8、 Lb1:B 水库本月发电用水量。9、 Lb2:B 水库下月发电用水量。10、 Ma1:A 水库本月直接放走的水量。11、 Ma2:A 水库下月直接放走的水量。12、 Mb1:B 水库本月直接放走的水量。13、 Mb2:B 水库下月直接放走的水量。14、 Na1:本月结束时 A 水库的水量。15、Na2:下月结束时 A 水库的水量。16、Nb1:本月结束时 B 水库的水量。17、Nb2:下月结束时 B 水库的水量。6五
6、、模型建立与求解根据差分方程模型,利用线性规划原理,结合数学建模知识,我们可以得出如下模型,即线性优化方程组:Max S=200(X1+X2)+140(Y1+Y2)约束条件有:1)每个月的发电量高于当月卖出的电量:400 La1+200Lb1 = X1+Y1400 La2+ 200Lb2=X2+Y22)水量永恒约束:La1+ Ma1+Na1=1900+200Lb1+ Mb1+Nb1=850+40+ La1+ Ma1La2+ Ma2 +Na2= Na1+130Lb1+ Mb2+Nb2= Nb1+15+ La2+ Ma23)发电能力限制:400La160000; 400La260000200Lb1
7、35000; 200Lb2350004)水库蓄水量限制:1200Na12000; 1200Na220007800Nb11500; 800Nb215005)高价电量的限制:X150000; X250000求解:将上述约束方程视为多元方程组问题,用 LINGO 求解。Global optimal solution found.Objective value: 0.3260000E+08Infeasibilities: 0.000000Total solver iterations: 3Variable Value Reduced CostX1 50000.00 0.000000X2 50000.0
8、0 0.000000Y1 45000.00 0.000000Y2 45000.00 0.000000LA1 150.0000 0.000000LB1 175.0000 0.000000LA2 150.0000 0.000000LB2 175.0000 0.000000MA1 730.0000 0.000000NA1 1220.000 0.000000MB1 785.0000 0.000000NB1 810.0000 0.000000MA2 0.000000 0.000000NA2 1200.000 0.000000MB2 0.000000 0.000000NB2 800.0000 0.0000
9、00Row Slack or Surplus Dual Price1 0.3260000E+08 1.0000002 0.000000 -140.00003 0.000000 -140.00004 0.000000 0.0000005 0.000000 0.0000006 0.000000 0.0000007 0.000000 0.0000008 0.000000 140.000089 0.000000 140.000010 0.000000 140.000011 0.000000 140.000012 20.00000 0.00000013 780.0000 0.00000014 0.000
10、000 0.00000015 800.0000 0.00000016 10.00000 0.00000017 690.0000 0.00000018 0.000000 0.00000019 700.0000 0.00000020 0.000000 60.0000021 0.000000 60.00000也可以在 MATLAB 中写入.M 文件如下:f =0 0 0 0 0 0 0 0 0 0 0 0 -200 -200 -140 -140;A=;b=;9Aeq=400 0 200 0 0 0 0 0 0 0 0 0 -1 0 -1 00 400 0 200 0 0 0 0 0 0 0 0 0
11、-1 0 -11 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0-1 0 1 0 -1 0 1 0 0 0 1 0 0 0 0 00 1 0 0 0 1 0 0 -1 1 0 0 0 0 0 00 -1 0 1 0 -1 0 1 0 0 -1 1 0 0 0 0;beq=0 0 2100 890 130 15;vlb=0;0;0;0;0;0;0;0;1200;1200;800;800;0;0;0;0;vub=150 150 175 175 150 150 175 175 2000 2000 1500 1500 50000 50000 45000 45000;x,fval=linpr
12、og(f,A,b,Aeq,beq,vlb,vub)运行 MATLAB,结果截图如下所示:10X1=50000 X2=50000;Y1=45000 Y2=45000;Ma1=150 Ma2=150 Mb1=175 Mb2=175;Na1=0 Na2=0 Nb1=0 Nb2=0;Wa1=1950 Wa2=1930Wb1=865 Wb2=855;S =3260000即水库 A 供应电站 A 发电的水量本月和下月均为 150 万 m3,水库B 供应电站 B 发电的水量本月和下月分别为 175 万 m3和 175 万 m3;本月和下月以高价售出的电量均为 50000 千度本月和下月以低价售出的电量分别为
13、 45000 和 45000 干度;总收入 3260 万元。六、模型优缺点分析模型的优点:通过搜集的资料可以明显的看出根据本模型求解出的每月生产经营计划符合实际,因而该模型具有很大的实用价值。另外,模型简单易懂,便于电力公司接受和采用。本模型利用线性规划原理进行模拟分析,可以通过 LINGO 软件求解,故可以推广到某些领域,如电力、运输、交通、物流等许多方面,特别是对于线11性规划模型。能很好的帮助我们解决实际中的计划问题。我们可以针对得出的结果向电力公司提出一些建设性的意见,例如,为使公司下个月能够可持续健康快速发展,我们必须保证两个水库本月和下月有足够的富余水量,即 Na1=1950 万立
14、方米,Nb1=865 万立方米,Na2=1930 万立方米 ,Nb2=855 万立方米。 模型的缺点:建模时假设只考虑到每月固定发电量的大小以及相应的利润,而没有考虑水力发电成本问题,如机器设备的折旧费等。而我们为了建模方便就假设了售出不受价值规律的约束,而实际上如果综合考虑发电成本,以及价值规律对其影响的话,那么得出结果将更加符合实际情况。七、参考文献【1】 优化建模与 LINDO/LINGO 软件谢金星,薛毅编著 北京: 清华大学出版社,2005 年【2】 MATLAB 程序设计教程刘卫国编著 北京:中国水利水电出版社,2005 年【3】 数学模型 姜启源编著 北京:高等教育出版社2003
15、年【4】 运筹学 (第三版)甘应爱等编著 北京:清华大学出版社,2005 年【5】 数学模型引论唐焕文,贺明峰编著 北京: 高等教育12出版社2005 年【6】最优化方法何坚勇编著 北京:清华大学出版社2007 年八、附录(程序代码)LINGO 输入程序如下:Max=200*(X1+X2)+140*(Y1+Y2);400*La1+200*Lb1 = X1+Y1;400*La2+200*Lb2 = X2+Y2;La1+ Ma1+Na1=1900+200;Lb1+ Mb1+Nb1=850+40+ La1+ Ma1;La2+ Ma2+Na2= Na1+130;Lb1+ Mb2+Nb2= Nb1+15
16、+ La2+ Ma2;400*La1=60000;400*La2=60000;200*Lb1=35000; 200*Lb2=35000;1200=Na1;Na1=2000; 1200=Na2;Na2=2000;13800=Nb1;Nb1=1500; 800=Nb2;Nb2=1500;X1=50000;X2=50000;MATLAB输入程序如下:f =0 0 0 0 0 0 0 0 0 0 0 0 -200 -200 -140 -140;A=;b=;Aeq=400 0 200 0 0 0 0 0 0 0 0 0 -1 0 -1 00 400 0 200 0 0 0 0 0 0 0 0 0 -1
17、0 -11 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0-1 0 1 0 -1 0 1 0 0 0 1 0 0 0 0 0140 1 0 0 0 1 0 0 -1 1 0 0 0 0 0 00 -1 0 1 0 -1 0 1 0 0 -1 1 0 0 0 0;beq=0 0 2100 890 130 15;vlb=0;0;0;0;0;0;0;0;1200;1200;800;800;0;0;0;0;vub=150 150 175 175 150 150 175 175 2000 2000 1500 1500 50000 50000 45000 45000;x,fval=linprog(f,A,b,Aeq,beq,vlb,vub)