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

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

目录

摘要:

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调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念