运筹学大作业实验报告.docx
《运筹学大作业实验报告.docx》由会员分享,可在线阅读,更多相关《运筹学大作业实验报告.docx(7页珍藏版)》请在冰豆网上搜索。
运筹学大作业实验报告
运筹学大作业报告
2015.12
前言
本次大作业是为了帮助我们顺利完成有关《运筹学》课程内容的学习。
在先期,翟老师带领我们进行了《运筹学》理论课程的学习,不仅使我们了解和掌握了运筹学的相关知识,而且让我们认识到运筹学的现实意义,认识到现代社会数学与人们生产、生活之间的紧密联系和对人们生产、生活的巨大促进作用。
然而,与此同时,现代社会同时是一个计算机时代,我们只拥有理论知识还不够,必须把理论知识和计算技术结合起来,这样才能进一步提高生产力。
我相信这也是老师要求我们做这次试验的目的和初衷。
在实验中,我们主要是利用lingo软件进行相关试验,其要求我们能够根据给出的问题,进行分析、建模和求解。
通过完成各项实验任务,使我们得以巩固已有的理论课程学习内容,为将来进一步的学习和实际应用打下基础。
问题描述
电动车最优充电模式
假设一个小区的电动汽车充电服务商为这个小区中的100辆电动汽车提供充电服务,集中调度电动汽车充电,在满足用户第二天行驶需求的前提下,降低充电费用。
假设电动汽车每天只能在家中(前一天到家时间和第二天离家时间之间)接入电网,车辆电池容量为33kWh,充电功率上限为3kW,行驶里程和能量消耗成线性关系,每千瓦时的电能可以行驶6.7km,为保证电池不要因为过度放电导致寿命损耗,限定电池电量下限值为其容量的10%,调度步长为15min。
同时,为保证电动汽车充电负荷不会导致小区线路过载,限定同时充电的车辆不超过20辆。
现在已知100辆车的前一天的到家时间、第二天的离家时间、前一天到家时的能量、第二天的预计行驶距离和分时电价。
以充电服务商总充电费用最小为目标,制定集中式车辆充电调度策略。
实验过程
一.问题分析
仔细分析该题目,我们提炼出以下几点条件:
1.车辆电池容量为33kWh,充电功率上限为3kW:
在计算时统一使用最大功率进行充电,来增加充电效率。
2.每千瓦时的电能可以行驶6.7km,电池电量下限值为其容量的10%:
用户在满足第二天行驶里程需求后,到家时剩余的电量要多于10%。
3.如由以上两点判断车辆是否需要充电以及充电的时长,用公式表示为:
所需充电时间(小时)=(行驶距离/(𝟔.𝟕)-(初始能量-𝟏𝟎%)×电池容量)/𝟑
4.调度步长为15min:
将用户在家的时间分段,并且在每一时间段内车辆只有充电和不充电两种状态。
5.同时充电的车辆不超过20辆:
每个时间段内同时充电的车辆数小于等于20。
6.由如上可以确定需要充电的时间段数:
即为时间计算结果乘以4并向上取整
二.建立模型
1.建立模型目标:
电价在不同时段有所不同,因此需要尽可能安排车辆在电价便宜的时间段内充电,来使得总费用最小
即:
由已知,100辆车最早回家时间是下午三点,最晚离开时间是上午十一点,期间一共是20个小时,以十五分钟为步长,则可分为80个时间段;经过判断可知有62辆车辆需要充电,因此目标函数只需计算这62辆车的充电费用总和。
𝑷_i是第i个时间段内的电价,𝑩_(𝒊,𝒋)表示第i辆车在第j个时间段内是否充电。
2.模型约束条件
1)第i辆车充电的总时间段数需大于或等于所需充电时间段数:
j=0,1,…,61
2)第j个时间段内正在充电的车辆总数需小于或等于同时充电车辆的上限值,即
i=0,1,…,79
3)所得结果表示为:
=
4)车辆充电时应在家
(𝑆_(𝑖,𝑗)为表示第i辆车在第j个时间段内是否在家的0,1矩阵)
三.模型求解
整体求解过程流程图如下:
1.预处理
所需充电时间(小时)=(行驶距离/(𝟔.𝟕)-(初始能量-𝟏𝟎%)×电池容量)/𝟑
其中,初始能量和行驶距离在表中给出,电池容量已知为33,因此可利用Excel中的公式对已知数据进行批量处理。
对所得小时数乘以4并向上取整得到需要充电的时间段数。
对于某些得数小于0,则说明该车辆不需要充电。
在Excel中新增一行,使用If公式进行判断,并显示“需要”或“不需要”
处理结果:
经过筛选,得到需要充电的车辆数为62,在后续计算中仅对这62辆车的充电调度问题进行计算。
2.中间过程
建立4个txt文本文档,将Excel处理所得结果复制粘贴到文档中。
其内容分别为:
1)“charegetime.txt”为每辆电动汽车所需充电时间段数,为62个元素的列向量
2)“maxcar.txt”为小区线路负载限制,即同时允许充电的最大汽车数目。
为80个元素的列向量,且值均为20.
3)“price.txt”为分时电价,为80个元素的列向量,储存各时间段电价值。
4)“S.txt”为汽车在家与否的状态矩阵,共62行80列,在家则值为1,不在家为0.
建立Excel文件result.xls,用于存放充电调度决策矩阵,即最终求解结果。
充电则值为1,不充电为0
处理结果:
3.算法实现
4.求解结果
结果分析
实验总结
通过此次运筹学实验,我们小组成员有极大的收获:
在一学期为数不多的实验过程中,不仅对运筹学的有关知识有了进一步的掌握,而且学会了通过建立模型解决实际生活中的相关问题。
对问题的分析、建模、求解锻炼了我们的思考能力,同时提高了分析、解决问题的能力,也更加了解和熟悉了lingo求解的强大功能,提高了我们的计算机应用水平。
同时,我们小组在此次试验中也存在一些不可避免的问题和不足。
例如,在分析问题时,设置变量没有清晰的思路;在列约束条件时粗心大意出现差错,导致最终结果的错误从而影响实际问题解决的效果,因此,我们在这方面应该加以注意和改正,在进行建模求解时细心耐心。
除此,我们小组成员也对此门课程提出了一些我们的建议:
首先,此门课程是一门有很大实际运用性的学科,故希望翟老师多结合我们实际生活中可能遇到的问题来进行讲解。
最后,课程的学习很快过去,但它对我们掌握运筹学建模问题的要求却并没有随课程的结束而结束。
此次大作业实验为以后的学习和工作打下了坚实的基础,在此感谢翟老师的细心指导和帮助。