基于精英遗传算法的电动汽车有序充放电调度策略——附代码

本文主要是介绍基于精英遗传算法的电动汽车有序充放电调度策略——附代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

摘要:

1.电动车无序充电特性:

2.电动车有序充电模型:

2.1 峰谷差最小

2.2 充电费用最小

3.精英遗传算法:

4.有序充放电调度结果:

5.本文Matlab程序:


摘要:

为了减小电动汽车规模化充电给配电网安全稳定运行带来的不利影响,提出一种基于精英遗传算法的电动汽车有序充电策略。考虑用户出行规律及保证配电网的安全稳定运行,以降低负荷曲线峰谷差与充电成本最小为目标,建立峰值不超过变压器容量和电池电量充满为约束的优化模型。采用精英遗传算法对该问题进行求解,所得结果表明有序充电相比于无序充电,能有效降低配电网的峰谷差同时节约电动车充电的成本。本文基于Matlab平台编程实现,代码注释详细、可修改性强,适合初学者模仿学习。

1.电动车无序充电特性:

无序充电是指用户无任何约束而给电动汽车充电的行为。根据 2009 年美国 NHTS 统计结果显示,来分析电动汽车开始充电时间、日行驶里程、充电时间等相关参数,可以绘制如下的电动车无序充电特性图:

左图为用户返程时间概率密度分布,右图为用户出行时间概率密度分布

可以发现大多数用户都是选择下班回到家就开始充电而早上出门后一般不会充电,这就会导致某一时刻大量用户聚集充电。规模化电动汽车充电会引起电网负荷激增而导致基础负荷峰上加峰现象。

2.电动车有序充电模型:

2.1 峰谷差最小

集聚充电时负荷曲线上就会表现出峰值和谷底相差较大,影响电网平衡而且造成资源利用不合理。以负荷峰谷差率最小建立目标函数为

其中:

2.2 充电费用最小

设置分时充电价格,用户如果考虑充电成本则会有部分用户选择在电价低的低谷时间段充电,从而减小负荷峰值减轻电网压力,以充电成本最小的目标函数为

3.精英遗传算法:

本文建立了基于精英遗传算法( ESGA) 求解模型,相比于普遍使用的基于轮盘赌选择的传统遗传算法具有更快的收敛速度。ESGA 的基本思想: 依据上一代种群的适应度建立精英种群,在新一代的选择的过程中,用精英种群替换种群中适应度低的个体。为了保证算法不过早限于局部最优,在遗传过程中适当修改交叉和变异率,k 为迭代次数,kk 为达到最优解连续不变的代数,M 为最优解保持连续不变的最大迭代次数,也就是说一旦迭代过程中最优解保持不变达到 M 代就对变异率和交叉率进行修改。ESGA 流程如图 4 所示。

4.有序充放电调度结果:

5.本文Matlab程序:

这篇关于基于精英遗传算法的电动汽车有序充放电调度策略——附代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/178356

相关文章

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python