【优化充电】基于matlab粒子群算法电动汽车充电动态优化策略【含Matlab源码 2163期】

news/2024/4/28 12:32:08/文章来源:https://blog.csdn.net/TIQCmatlab/article/details/127253995

一、粒子群算法电动汽车充电优化

1 电动汽车充电负荷估算
电动汽车的充电负荷主要与电动汽车起始充电时刻和充电时长相关,而起始充电时刻是由电动汽车用户的到家时间决定的,充电时长主要与电动汽车的行驶里程和充电倍率相关。

目前电动汽车还没有大规模运营, 只能通过统计燃油车的相关规律来代替电动汽车。对北京市某小区的私家车用户进行统计,回家时间主要分为三种: 一是正常朝九晚五的上班族,到家时间基本服从N(17.6,1.3)的正态分布, 这类用户占的比重最大;二是加班或者上半夜班的用户,到家时间基本服从N (0.7,1.6)的正态分布;三是少部分后半夜上班的人,到家时间基本服从N (7.8,1.22)的正态分布。三类用户所占的比例分别为0.68、0.24和0.08。
目前大部分私人用电动汽车的常规充电功率约为3 k W,根据以上相关信息,可以通过蒙特卡洛计算机仿真模拟方法,求出包含上述三类用户的居民小区平均每天一辆电动汽车的充电功率需求,如图1所示。
在这里插入图片描述
图1电动汽车一天平均充电功率需求
根据电动汽车平均一天的充电功率需求曲线,只要设置居民小区的电动汽车用户数量,就可以求出相应规模电动汽车的充电负荷曲线。

2 光伏出力曲线和常规用电负荷
固定铺设面积的光伏出力曲线主要与光照强度和温度相关,在实际条件下主要表现为天气变化和季节性变化。通过对某楼顶10 k W光伏发电系统功率输出数据进行统计和处理,可得不同季节该光伏发电系统满发的出力曲线,如图2所示。
在这里插入图片描述
图2四季光伏满发出力曲线

居民小区的负荷曲线主要和小区的用户规模相关,通过对北京市某小区居民楼的实际负荷数据进行统计,可得夏季和冬季每户平均家庭常规用电负荷曲线,如图3所示。
在这里插入图片描述
图3某小区每户平均家庭常规负荷曲线

2 电动汽车优化充电模型
2.1 目标函数

本文以平抑小区配电网的负荷波动和降低电动汽车用户充电电费为小区电动汽车充电优化的目标函数。以分钟为单位,将一天分为1 440 min。

1)以平抑负荷波动为目标函数
2)以用户电费最少为目标函数
针对上述两个目标,考虑两者目标函数的量纲不同,对每个目标函数进行规范化,采用线性加权和法将多目标优化问题转化为单目标优化问题,

2.2 约束条件
居民小区电动汽车充电优化调度的约束条件主要满足用户使用方面和电网运行的要求。对于用户使用方面的要求主要体现在用户开始充电时间和充电时长;对于电网运行的要求主要体现在总功率不能超过电网节点功率的限制。

1)用户需求约束
本约束条件的要求是要保证电动汽车在用户离开家的时间之前完成充电。

2)电网运行约束
本约束条件的要求是要保证小区在引入电动汽车充电负荷和光伏发电输出的情况下,电网节点的功率要维持在电网的合理安全范围之内。

2.3求解方法
居民小区电动汽车的优化充电问题是一个多维、多变量、多约束条件以及非线性的优化问题,线性规划等经典优化算法难以解决。这里采用粒子群优化算法,考虑到基本粒子群算法容易陷入局部最优的问题,本文将采用改进的自适应变异粒子群优化算法进行求解。

粒子群算法即模拟鸟群的捕食行为,通过鸟群的集体协作达到群体最优值,算法通过式(9) 和式(10)实现粒子位置和速度的更新
式中,ω为惯性权重,一般在0.1 ~0.9之间取值; d=1,2,…,D;i=1,2,…,n;k为当前迭代次数;Vid为粒子的速度;Xid为粒子的位置;c1和c2为非负的常数,称为加速度因子;r1和r2为0~1区间的随机数。

粒子群优化算法存在早熟收敛现象,需要对惯性权重和学习因子进行改进。对于惯性权重ω, 若ω在0.5~1之间随机取值,则实验表明该算法比线性递减策略准确度更高,收敛速度更快
对于学习因子c1和c2采用非线性反余弦加速, c1先大后小,而c2先小后大,能解决陷入局部最优的问题。基本思想是搜索初期粒子飞行主要参考本身的历史信息c1,到了后期则更加注重群体信息c2,即
根据上述分析,得到相应的优化算法的求解过程如下:

1)初始化粒子群中粒子的位置与速度,并根据约束条件对粒子位置进行修正。

2)计算粒子的适应度值(目标函数值)。

3)将个体最优值设置为当前位置,群体最优值gbest设置为初始群体中最佳粒子的位置。

4)再根据式(9)和式(10)更新粒子速度和相应位置。

5)计算粒子群粒子的适应度,更新并记录粒子最优位置和群体最优位置。

6)根据式(14)式(16)计算群体适应度方差σ2。

7)根据式(17)计算变异概率pm。

8)产生在0~1的随机数,如果该数小于变异概率pm,则执行式(18)的变异操作,并进行相应修正。

9)判断是否达到结束条件,如果为真,则停止计算,并输出优化的解;如果为假,返回步骤4)。

二、部分源代码

function[info,fv] = PSO2(N,c1,c2,w,M,knownEV_info,k,n,timeInterval,load_grid)
% info EVs with the start times which give the smallest fitness value
% fv the smallest fitness value

% c1,c2 learning factor
% w inertia weight
% M maximum number of iterations
% D number of vehicles needed to be arranged %need to be changed to vinfo
% N number of particles
% k kth interval to be arranged

% EVs with manageable start time
aEV = knownEV_info(find(knownEV_info(:,5) >= (k-1)*timeInterval)😅;
%
bEV = knownEV_info(find(knownEV_info(:,5) < (k-1)*timeInterval)😅;

% initalize particles

for i = 1:N
for j=1:length(aEV(:,5))
x(i,j) = aEV(j,2) + (aEV(j,4) - aEV(j,3)- aEV(j,2))rand;
% x(i,j) = 0;
% while (x(i,j) < (k-1)15) || (x(i,j) > (aEV(j,4) - aEV(j,3)))
% x(i,j) = randn
12
60; % initialize the start time of vehicles
% end
v(i,j) = randn; % initialize the speed
end
end

% calculate the fitness and initialize particle optimal and global optimal
for i=1:N
aEV(:,5) = x(i,:)’;
vehicle_info = sortrows([aEV;bEV],1);
p(i) = fitness(vehicle_info,n,load_grid);
y(i,:) = x(i,:);
end
% find the global optimal
pg = x(N,:);
vg = p(N);
for i=1:(N-1)
if(p(i)<vg)
pg = x(i,:);
vg = p(i);
end
end

% main iteration
for t=1:M
for i=1:N % update the speed and the start time
v(i,:)=wv(i,:)+c1rand*(y(i,:)-x(i,:))+c2rand(pg-x(i,:));

    for j=1:length(aEV(:,5))if ((x(i,j)+v(i,j)) >= aEV(j,2)) &&  ((x(i,j)+v(i,j)) <= (aEV(j,4) - aEV(j,3)))x(i,j) = x(i,j)+v(i,j);endendaEV(:,5) = x(i,:)';vehicle_info = sortrows([aEV;bEV],1);if fitness(vehicle_info,n,load_grid) < p(i)p(i)=fitness(vehicle_info,n,load_grid);y(i,:) = x(i,:);endif p(i) < vgpg = y(i,:);vg = p(i);end
end
Pbest(t) = vg;

end

% result
aEV(:,5) = pg’;
info = sortrows([aEV;bEV],1);
fv = vg;

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]庞松岭,张超,张帝,刘汉炜,严乙桉.基于自适应变异粒子群算法的居民小区电动汽车优化充电策略[J].电气应用. 2015,34(20)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_398825.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis

ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis 目录 ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis 项目创建 StackExchange.Redis操作示例 引包【using StackExchange.Redis;】 ConnectionMultiplexer RedisDBHelper …

Git学习总结

目录&#xff1a; &#xff08;1&#xff09;版本控制 &#xff08;2&#xff09;Git和SVN的区别 &#xff08;3&#xff09;Git历史 &#xff08;4&#xff09;安装Git及环境配置 &#xff08;5&#xff09;常用的Linux命令 &#xff08;6&#xff09;Git的必要配置 &a…

PMO和PM如何实现从战略解码到项目执行的端到端闭环?

一、PMO的使命与职责 PMO的使命是提升端到端组织效能&#xff0c;赋能于精细化管理&#xff0c;成为企业的加速器&#xff0c;保障战略项目的交付。 那么PMO要保障战略的交付&#xff0c;核心职责有哪些呢&#xff1f; 二、组织为什么需要端到端项目管理&#xff1f; 核心价…

【ZooKeeper】ZooKeeper 应用场景

ZooKeeper 应用场景发布订阅命名服务集群管理分布式锁分布式队列管理负载均衡配置管理ZooKeeper&#xff1a;分布式协调服务&#xff0c;仲裁机构。基于ZNode数据模型和Watcher监听机制可以解决很多问题&#xff0c;比如分布式锁问题。 应用场景如下&#xff1a; 1、发布/订阅 …

servlet基础知识

早期的Web应用主要用于浏览新闻等静态页面&#xff0c;HTTP服务器&#xff08;比如 Apache、Nginx&#xff09;向浏览器返回静态 HTML&#xff0c;浏览器负责解析HTML&#xff0c;将结果呈现给用户。随着互联网的发展&#xff0c;还希望进行一些交互操作来获取动态结果&#xf…

Python Turtle绘图基础(一)——Turtle简介、绘图窗体与绘图区域

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是Python Turtle绘图基础&#xff0c;包括Turtle简介、绘图窗体与绘图区域。 一、Turtle库简单介绍 Turtle库时Python语言的标准库&#xff08;所谓标准库&#xff0c;就是在安装Python时自带的库&#xff0c;与之…

【经典面试题-LeetCode69/剑指 Offer II 072:x 的平方根 (Python3实现)】

x 的平方根一、题目描述1.题目内容2.样例二、解决方案1.基本代码&#xff08;成功提交&#xff09;2.略微拓展一、题目描述 这是一道经典的面试题&#xff0c;需要我们在不使用任何内置函数的前提下&#xff0c;手动实现求指定整数的算术平方根。 1.题目内容 给你一个非负整数…

Android开发——底部导航栏设计

底部导航栏设计1.依赖配置2.tabbar的UI实现3.tabbar的逻辑绑定4.tabbar的滑动与点击联动其实,常见的Android和微信小程序一样&#xff0c;通常最下面一排需要有一排导航栏&#xff0c;可以通过点击导航栏图标和滑动实现页面跳转&#xff0c;具体实现使用的是Android的 ViewPage…

在MUI框架中对于事件绑定与取消和监听的触发自定义的深入运用与实战

事件绑定 除了使用addEventListener&#xff08;&#xff09;方法侦听特定元素上的事件外&#xff0c;还可以使用。on&#xff08;&#xff09;方法实现批元素的事件绑定。 event Type: String 需监听的事件名称&#xff0c;例如&#xff1a;‘tap’ selector Type: String 选择…

MySQL集群搭建——主从同步(一主二从)

一、安装MySQL数据库 Centos7安装MySQL5.7 目前准备了三台服务器作为主从配置数据库 #主 192.168.159.100:3306 #从 192.168.159.101:3306 #从 192.168.159.102:3306二、修改主数据库配置文件 vim /etc/my.cnf #在mysqld模块中添加如下配置信息 #开启二进制日志 log-binmast…

Win10家庭版利用Hyper-V虚拟机安装Kali Linux

目录 安装Hyper-V 批处理安装 重启电脑 下载Kali镜像 Kali官网下载 Hyper-V虚拟机 创建虚拟机 启动虚拟机 安装Kali 安装前配置 磁盘分区 系统安装 登录系统 近期学习网络安全的相关内容&#xff0c;需要用到很多的安全工具。偶然得知Kali Linux就是专门为网络安…

SD-WAN是面向分支机构的新兴、不断发展的解决方案

在过去的二十年里&#xff0c;人们的工作方式发生了很大变化。共享办公空间、移动性和云现在很常见。业务分散&#xff0c;分支机构得到授权。 当然&#xff0c;这个新功能是一件好事。但是&#xff0c;与此同时&#xff0c;它提出了一个巨大的挑战&#xff1a;多协议标签交换(…

【潮流计算】基于matlab粒子群算法优化电力系统潮流计算【含Matlab源码 2157期】

一、粒子群算法简介 1 标准粒子群优化(PSO)算法 PSO算法根据对环境的适应度将群体中的个体移动到好的区域,将每个个体看作是D维搜索空间中的一个粒子,根据粒子本身的飞行经验和群体中其他同伴的飞行经验调整下一步飞行方向,从而搜索到最好的空间位置解。设第i个粒子的位置表示…

什么是 IoT App SDK?

目录 为什么要开发 IoT App&#xff1f; IoT App SDK 的优势 IoT App SDK 分类 智能生活 App SDK 商用照明 App SDK 智慧社区 App SDK 智慧居住 App SDK 行业 App SDK 其他概念 IoT 设备 通信过程 IoT 云平台 智能面板 名词解释 涂鸦 IoT App SDK 是专为物联网移…

沉睡者IT:你理解的元宇宙是怎样呢?

这半年来关于元宇宙的话题成为了一场舆论的热点&#xff0c;很多即使是从事与其毫无相关职业的人&#xff0c;也多少有些耳闻。 ​ 编辑 但是对于元宇宙&#xff0c;它是什么&#xff0c;为什么需要元宇宙&#xff0c;怎样才能建立元宇宙以及大家对元宇宙的看法&#xff0c;…

Hack The Box靶机——Ambassador

文章目录前言一、Web部分二、提权部分前言 难度&#xff1a;中等&#xff0c;Hack The Box网站在线靶机。本文涉及知识点有&#xff1a;Grafana系统任意文件读取&#xff0c;CURL下载文件&#xff0c;SSL本地端口转发&#xff0c;Consul命令执行。 靶机地址&#xff1a;1…

【windows kernel源码分析】对初学者友好的底层理解,让你对计算机内核不再迷茫

文章目录&#x1f343;概念梳理windows kernel引导加载程序完成后的RAM内容&#x1f351;实现过程--还是看原文吧 &#x1f338;参考原文链接对市面上的文章再做一次整合。给渴望得到内核知识的人提供一些帮助。 &#x1f343;博主昵称&#xff1a;一拳必胜客 博主主页面链接&a…

各种平均值:算术平均值,几何平均值,调和平均值等

平均值概述 平均数反映了一组数据的一般水平&#xff0c;最常见的平均数是算术平均数&#xff0c;除了算数平均数外&#xff0c;还有几何平均数&#xff0c;调和平均数&#xff0c;加权平均数等。 算术平均值&#xff08;Arithmetic Mean&#xff09; 公式解读&#xff1a;表…

list全部功能模拟实现

目录&#xff1a; list的深度剖析及模拟实现 list底层是双向循环链表 ------而实现list最重要的就是迭代器类的实现 下面我们会重点学习迭代器 list整体接口函数罗列 //模拟实现list底层---全部功能 namespace std {//结点类模拟实现template<class T>struct list_node…

java数据结构-------栈和队列

文章目录1、栈(Stack)1、什么是栈2、栈中常使用的方法3、栈的应用场景1、逆序打印链表2、有效的括号2、队列(Queue)1、什么是队列2、队列的使用3、循环队列目标&#xff1a;1、 栈的概念及使用&#xff0c;2、 队列的概念及使用&#xff0c;3.、相关OJ题1、栈(Stack) 1、什么是…