- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十六章 Matlab数学建模案例分析 第16章 发电机安排计划 第十六章 Matlab数学建模案例分析 发电机安排计划和人员安排计划类似,涉及到安排问题,一般均属于NP问题,只能是尽可能的去满足模型需要,求出尽可能优化的解。为了满足日常用电需求,且需要满足发电机厂的发电机使用规划,发电机安排计划需要解决成本和用电需求之间的平衡,从而使成本最小,本模型设计分段函数处理以及混合整数规划模型求解等。 学些目标: (1)学习和掌握LINGO求解发电机安排计划问题等; (2)掌握分段函数的处理方法; (3)掌握混合整数规划问题的求解等。 本题研究了发电机使用计划的最优化问题,利用每个时段发电机所花费的成本的最小值建立数学模型。使用LINGO程序求出7个时段总成本的最优解的方法,得到了最优解的结果。最优解的思想在实际生活中可用性比较强,可进行模型推广。 第十六章 Matlab数学建模案例分析 表16- 1 每日用电需求(兆瓦) 时段 0点— 6点 6点— 9点 9点— 12点 12点— 14点 14点— 18点 18点— 22点 22点— 24点 需求 12000 32000 25000 36000 25000 30000 18000 每种发电机都有一个最大发电能力,当接入电网时,其输出功率不应低于某一最小输出功率。所有发电机都存在一个启动成本,以及工作于最小功率状态时的固定的每小时成本,并且如果功率高于最小功率,则超出部分的功率每兆瓦每小时还存在一个成本,即边际成本。这些数据均列于表16-2中。 表16- 2 发电机数据 ? 可用数量 最小输出 功率(兆瓦) 最大输出 功率(兆瓦) 固定成本 (元/小时) 每兆瓦边际 成本(元/小时) 启动成本 (元) 型号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 第十六章 Matlab数学建模案例分析 16.4 符号说明 第十六章 Matlab数学建模案例分析 16.5 问题分析与建模 本问题是希望建立一个数学模型来解决若干发电机在一天中7个时段各自出力多少,即使用多少台发电机发电,使得总的成本最低。由于供电是一个不间断的进行,因此在考虑此问题时应该注意两天之间的衔接,体现在此处就是第一个时段(午夜12点至上午6点)与第7个时段(晚上10点至12点)之间的衔接,我们将它与其它时间段之间的衔接同样处理,此过程可以用图16-1表示。 图16- 1 运转示意图 第十六章 Matlab数学建模案例分析 各发电站全天产生的总费用即为: (3)每类发电机的输出功率一定要在发电机安全工作的范围内: (4)可供使用的发电机总数满足条件: (5)在时段j中新启动的发电机台数必须等于发电机增加的台数: 第十六章 Matlab数学建模案例分析 16.5.2 数学模型 这是一个混合整数规划问题。 第十六章 Matlab数学建模案例分析 16.6 模型求解 是一个分段函数,因此要做一定的变换将其表示成一个函数。 和 为了求解此模型,可以采用分支定界法或者割平面法,该方法能够求出局部最优解。在LINGO软件中有关于此类算法的实现方法,因此直接利用LINGO软件进行求解。 第十六章 Matlab数学建模案例分析 @for(timepiece(j):@sum(elect(i):x(i,j))=timetotalcap(j)); @for(links(i,j): mincap(i)*num(i,j)=x(i,j)); @for(links(i,j): maxcap(i)*num(i,j)=x(i,j)); @for(timepiece(j):@sum(elect(i):maxcap(i)*num(i,j))=timetotalcap(j)); ! 问题1; @for(elect(i):svar(i,1)=@smax(0,num(i,1)-num(i,7))); @for(elect(i):svar(i,2)=@smax(0,num(i,2)-num(i,1))); @for(elect(i):svar(i,3)=@smax(0,num(i,3)-num(i,2))); @for(elect(i):svar(i,4)=@smax(0,num(i,4)-num(i,3))); @for(elect(i):svar(i,5)=@s
原创力文档


文档评论(0)