当前位置: 首页 > news >正文

“车-路-网”电动汽车充电负荷时空分布预测(matlab)

目录

1 主要内容

2 部分代码

3 程序结果

4 下载链接


主要内容

该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型,考虑私家车、出租车和共用车三类交通工具特性和移动负荷特性,实现了基于动态交通信息的电动汽车充电负荷时空分布预测。将负荷预测情况和33节点配电网络进行结合,形成交通网-配电网交互模型,采用牛拉法进行潮流计算。程序采用matlab编写,注释清晰,方便学习!

  • 交通网-配电网交互模型
路网模型参考下图:

很多文献都会用到路网结合模型,这也是电动车研究领域的一个热点方向,通过路网模型更能精确定位电能需求点以及对配电网络的影响。

  • 动态交通路网模型

动态交通网络模型采用图论法进行建模,拓扑结构示意图如下:

具体的数学模型表达式为:

式中:为交通路网;表示图 所有节点的集合;表示图 所有路段的集合;为路段权值的集合,即道路路阻;表示划分的时间段集合,即将全天划分为 m个时间段。

交通网络生成代码如下:

%%动态交通路网模型:采用图论分析方法建模
%G为交通路网(图);V表示图G所有节点的集合,本文设置32个配电网节点;E表示所有路段的集合;W为路段权重的集合,即道路路阻;K表示划分的时间段集合,即将全天划分为m个时间段。
%路段权值W表示道路出行代价,可采用路段长度、通行速度、行程时间等权值进行量化研究
%在城市路网中,路口交叉节点多设置信号灯进行管控,车辆行驶既受到路段阻抗影响,又在交叉节点产生时间延误。
%因此,城市道路路阻可表示为W(t)=CV(t)+RV(t);CV(t)表示节点阻抗模型,RV(t)表示路段阻抗模型
%依据城市交通状况划分标准,饱和度 S 评价指标:畅通(0<S≤0.6)、缓行(0.6<S≤0.8)、拥挤(0.8<S≤1.0)以及严重拥堵(1.0<S≤2.0)。
%道路交叉口和路段通行能力不同,可以得到不同饱和度对应的路段阻抗和节点阻抗模型
%RV(t)路段阻抗模型,通过饱和度S=Q/C,(Q为路段交通流量,C为通行能力,这里是随机生成S所以不用管Q与C的问题);t0为零流量行程时间;alpha beta为阻抗影响因子,来计算。
%CV(t)节点阻抗模型,通过信号周期c,绿信比lamda,路段车辆到达率q,来计算
%针对RV(t)路段阻抗和CV(t)节点阻抗模型中,饱和度S是唯一变量,其余为道路规划固定参数,因此,将RV(t)和CV(t)合并可得到道路路阻阻抗模型W(t)=CV(t)+RV(t)。
​
%% alpha beta 阻抗影响因子 t0-零流量行程时间,计算RV(t)路段阻抗模型
alpha=1.3;
beta=1.2;
t0=10;
​
%% 信号周期c,绿信比lamda,路段车辆到达率q,计算CV(t)节点阻抗模型
c=30;
lamda=0.7;
q=0.8;
​
%% 2【路网结构】 邻接矩阵(此时建立的仅是结构,而为给每条边赋以路段权值W)
LJ=zeros(32,32);
L=[1 2;2 3;3 9;1 4;2 6;3 7;4 5;5 6;6 7;7 8;8 9;4 10;5 11;6 12;7 13;10 11;11 12;12 13;13 14;8 21;9 26;10 15;11 16;12 17;12 18;14 20;15 16;16 17;17 18;18 19;19 20;20 21;15 32;16  27;17 22;18 23;19 24;20 24;21 25;32 27;27 22;22 23;23 24;24 25;25 26;23 28;24 29;25 30;26 31;27 28;28 29;29 30;30 31];
% 矩阵序号法写邻接矩阵
LJ(L(:,2)*32-32+L(:,1))=1; 
LJ(L(:,1)*32-32+L(:,2))=1;
%
figure(1)
G=graph(LJ,'upper');%根据带权邻接矩阵生成无向图
% plot(G);
% title('无向图')
plot(G,'EdgeLabel',G.Edges.Weight)
title('标定权重的无向图')
​
%% 3【阻抗模型权重W】(为给每条边赋以路段权值W)
% 1) 随机生成S权重   
% 2) 或者 输入shortestpath函数求路径(这一项操作没有便要做,不知道作用是为何)
S=zeros(32,32);
S=2*rand(32,32);
for i=1:32for j=1:32if LJ(i,j)==1if S(i,j)<=1 Rv(i,j)=t0*(1+alpha*S(i,j)^beta);elseRv(i,j)=t0*(1+alpha*(2-S(i,j))^beta);endif S(i,j)<=0.6 Cv(i,j)=0.9*(c*(1-lamda)^2/2/(1-lamda*S(i,j))+S(i,j)^2/2/q/(1-S(i,j)));elseCv(i,j)=c*(1-lamda)^2/2/(2-lamda*S(i,j))+1.5*(S(i,j)-0.6)*S(i,j)/(2-S(i,j));endW(i,j)=Rv(i,j)+Cv(i,j);elseW(i,j)=0*1e3;endend
end
W(find(W>50))=50;
figure(2)
bar3(W)
%
G=graph(W,'upper');
% plot(G);
% title('无向图')
plot(G,'EdgeLabel',G.Edges.Weight)
title('标定权重的无向图')
​
%[path,distance]=shortestpath(G,1,6)      %这行代码在这块没用,是多余的
%% 4【路程模型权重L】(作为计算耗电量中的一个参数)
RL=10+10*rand(32,32);
RL=RL.*LJ;

部分代码

load dataTRN.mat;
load dataEV.mat;
load dataWq.mat;
G=graph(W,'upper');                %生成路-网耦合图G,W是每条边的权重值,W为32*32阶矩阵
Charge=zeros(size(Mcar,1),5);      %生成一个size(Mcar,1)=1000*5的零矩阵,其中size(Mcar,1)=1000。
​
TP_carnumber=zeros(size(W,1),3);   %生成一个size(W,1)=32*3的零矩阵,W是每条边的权重值,W为32*32阶矩阵,TP_carnumber(x,1)、TP_carnumber(x,2)、TP_carnumber(x,3)应该是每条边上/每个交通节点私家车1,公交车2,私家车3的数量
Pcharge=zeros(24,3);               %生成一个24*3的零矩阵,******PCharge代表24小时内私家车1,公交车2,私家车3
Pchar_slow=12;                     %设置慢充充电功率为12KW
Pchar_fast=48;                     %设置慢充充电功率为48KW
Pntcharge=zeros(24,32);            %生成一个24*32的零矩阵,PntCharge代表24个小时内32个配网节点的供电负荷=电动汽车耗电量
%% MC
for icar=1:size(Mcar,1)             %EV的编号,从1-1000,共1000台EV,size(Mcar,1)=1000,一个for icar=1:size(Mcar,1) 循环代表把第一台EV的%1-9个特征变量(车辆编号icar、EV种类Icar_kind、EV初始位置Birthland、%目的地Destination、初始时刻tBirth1、返程时刻tBirth2、ev容量Cbat、初始soc SOC0、速度Vcar)全部采集一遍%1000个for icar=1:size(Mcar,1) 循环代表把1000台EV的%1-9个特征变量(车辆编号icar、EV种类Icar_kind、EV初始位置Birthland、%目的地Destination、初始时刻tBirth1、返程时刻tBirth2、ev容量Cbat、初始soc SOC0、速度Vcar)全部采集一遍icarIcar_kind=Mcar(icar,2);%EV种类;%size(Mcar,2)=1000Birthland=Mcar(icar,3);%EV初始位置Destination=Mcar(icar,4);%目的地tBirth1=Mcar(icar,5);%初始时刻tBirth2=Mcar(icar,6);%返程时刻Cbat=Mcar(icar,7);%ev容量SOC0=Mcar(icar,8);%初始socVcar=Mcar(icar,9);%速度TP_carnumber(Birthland,Icar_kind)=TP_carnumber(Birthland,Icar_kind)+1;%第Birthland条边/第Birthland个交通节点下,对应的第Icar_kind种车型加1,此行代码是计数的作用if   Mcar(icar,3)==Mcar(icar,4)                                       %如果EV初始位置Birthland=car(icar,3)==EV目的地Destination=Mcar(icar,4)continue                                                           %end                                                                   %[path,distance]=shortestpath(G,Birthland,Destination);                %如果EV初始位置Birthland=car(icar,3)   不等于  EV目的地Destination=Mcar(icar,4)%则输出EV初始位置Birthland=car(icar,3)与EV目的地Destination=Mcar(icar,4)最短路径path与最短距离distance%% C1 私家车if  Icar_kind==1%考虑环境温度和速度 耗电量dE=1.5*distance/Vcar+(0.21-1e-3*Vcar+1.531/Vcar)*distance;       %由最短行驶距离distance,电动汽车行驶实时车速Vcar=Mcar(icar,9),计算出EV初始位置到目的地的耗电量SOC1=SOC0-dE/0.9/Cbat;                                           %由初始soc即SOC0=Mcar(icar,8) 与 EV初始位置到目的地的耗电量 与 充电效率0.9 与 ev容量Cbat=Mcar(icar,7)SOC2=SOC1-dE/0.9/Cbat;                                           %计算出电动汽车剩余电量SOC2tdest1=tBirth1+distance/Vcar;                             %到达目的地时间(tdest1)=初始时刻+行驶时间if  SOC2<0                                                %判断私家车是否充电的条件% 触发慢充/计及排队时间Tmmc=Wq(ceil(tdest1));                                %ceil为向上取整T80=tdest1+(0.8-SOC1)*Cbat/Pchar_slow+Tmmc;           %充电到0.8EV容量时间(T80)=到达目的地时间+慢充到0.8EV容量时间+Tmmcif T800.8EV容量时间<到达第二个目的地的时间Charge(icar,2)=1;                                  %Icar_kind=Mcar(icar,2);EV种类;所以Charge(icar,2)赋值为私家车Icar_kind==1Charge(icar,3)=floor(tdest1);                      %EV初始位置Mcar(icar,3)赋值为向下取整tdest1,即32个交通节点中的一个Charge(icar,4)=ceil(T80);                          %目的地Mcar(icar,4)赋值为向上取整T80,即32个交通节点中的一个Charge(icar,5)=ceil(Pchar_slow);                   %初始时刻Mcar(icar,5)赋值为向上取整Pchar_slowPntcharge(Charge(icar,3):Charge(icar,4),Destination)=Pntcharge(Charge(icar,3):Charge(icar,4),Destination)+Charge(icar,5);%列表切片,Pntcharge(Charge(icar,3):Charge(icar,4),Destination)即为取Charge(icar,3):Charge(icar,4)所在行与Destination所在列的交叉元素elseCharge(icar,2)=1;                                  %Icar_kind=Mcar(icar,2);EV种类;所以Charge(icar,2)赋值为私家车Icar_kind==1Charge(icar,3)=floor(tdest1);                      %EV初始位置Mcar(icar,3)赋值为向下取整tdest1Charge(icar,4)=ceil(tBirth2);                      %目的地Mcar(icar,4)赋值为向上取整tBirth2,因为此时T80>tBirth2成立Charge(icar,5)=ceil(Pchar_slow);                   %初始时刻Mcar(icar,5)赋值为向上取整Pchar_slowPntcharge(Charge(icar,3):Charge(icar,4),Destination)=Pntcharge(Charge(icar,3):Charge(icar,4),Destination)+Charge(icar,5);%列表切片,Pntcharge(Charge(icar,3):Charge(icar,4),Destination)即为取Charge(icar,3):Charge(icar,4)所在行与Destination所在列的交叉元素
​

程序结果

4 下载链接

见下方!

相关文章:

“车-路-网”电动汽车充电负荷时空分布预测(matlab)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型&#xff0c;考虑私家车、出租车和共用车三类交通工具特性和…...

【核磁共振成像】方格化重建

目录 一、缩放比例二、方格化变换的基础三、重建时间四、方格化核 一、缩放比例 对于笛卡尔K空间直线轨迹数据可直接用FFT重建&#xff0c;而如果K空间轨迹的任何部分都是非均匀取样的 可用DFT直接重建&#xff0c;有时称为共轭相位重建&#xff0c;但此法太慢不实用。把数据再…...

JAVA中时间戳和LocalDateTime的互转

时间戳转LocalDateTime&#xff1a; 要将时间戳转换为LocalDateTime并将LocalDateTime转换回时间戳&#xff0c;使用Java的java.time包。以下是示例代码&#xff1a; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId;public class Times…...

无涯教程-进程 - 创建终止

到现在为止&#xff0c;我们知道无论何时执行程序&#xff0c;都会创建一个进程&#xff0c;并且该进程将在执行完成后终止&#xff0c;如果我们需要在程序中创建一个进程&#xff0c;并且可能希望为其安排其他任务&#xff0c;该怎么办。能做到吗?是的&#xff0c;显然是通过…...

LLMs参考资料第一周以及BloombergGPT特定领域的训练 Domain-specific training: BloombergGPT

1. 第1周资源 以下是本周视频中讨论的研究论文的链接。您不需要理解这些论文中讨论的所有技术细节 - 您已经看到了您需要回答讲座视频中的测验的最重要的要点。 然而&#xff0c;如果您想更仔细地查看原始研究&#xff0c;您可以通过以下链接阅读这些论文和文章。 1.1 Trans…...

LeetCode字符串数组最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例 1&#xff1a; 输入&#xff1a;strs [“flower”,“flow”,“flight”] 输出&#xff1a;“fl” 示例 2&#xff1a; 输入&#xff1a;strs [“dog”,“raceca…...

Git gui教程---第八篇 Git gui的使用 创建一个分支

一般情况下一个主分支下代码稳定的情况下会新建出一个分支&#xff0c;然后在分支上修改&#xff0c;修改完成稳定后再合并到主分支上。 或者几个人合作写一份代码&#xff0c;每个人各一个分支&#xff0c;测试稳定再合并到主分支上。 在git gui选择菜单栏“分支”&#xff0…...

Docker修改daemon.json添加日志后无法启动的问题

docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升…...

QT6编译的文件分布情况

工程文件和编译文件位置分布 工程文件是自己建立的源文件位置&#xff0c;而同等级的位置在工程构建时会重新生成一个编译后的文件夹&#xff0c;里面包含了可执行的exe文件。而这个文件夹的内容也是QT ide运行时读取的文件&#xff0c;但这个文件的内容在IDE中如果不重新构建…...

2023中国算力大会 | 中科驭数加入DPU推进计划,探讨DPU如何激活算网融合新基建

8月18日&#xff0c;由工业和信息化部、宁夏回族自治区人民政府共同主办的2023中国算力大会在宁夏银川隆重召开。作为DPU算力基础设施领军企业&#xff0c;中科驭数产品运营部副总经理曹辉受邀在中国信通院承办的算网融合分论坛发表主题演讲《释放极致算力 DPU激活算网融合新基…...

leetcode 115. 不同的子序列

2023.8.25 使用dp数组解决。 定义一个二维dp数组&#xff0c;dp[i][j]的含义为&#xff1a;字符串s&#xff08;下标为i-1&#xff09;中&#xff0c;子序列t&#xff08;下标为j-1&#xff09;出现的个数。 当字符串s[i-1]和t[j-1]相同时&#xff0c;递推公式为&#xff1a;d…...

gradio应用transformer模块部署生成式人工智能应用程序

文章目录 gradio简介hello world范例文本分类文本问答抽取式问答gr.Interface自定义实现问答Blocks使用gradio简介 gradio只需在原有的代码中增加几行,就能自动化生成交互式web页面,并支持多种输入输出格式,比如图像分类中的图>>标签,超分辨率中的图>>图等。 …...

【目标检测】“复制-粘贴 copy-paste” 数据增强实现

文章目录 前言1. 效果展示代码说明3. 参考文档4. 不合适点 前言 本文来源论文《Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation》&#xff08;CVPR2020&#xff09;&#xff0c;对其数据增强方式进行实现。 论文地址&#xff1a;https:/…...

深度学习知识总结2:主要涉及深度学习基础知识、卷积神经网络和循环神经网络

往期链接&#xff1a;Summer 1 : Summarize linear neural networks and multi-layer perceptron Summer 2: Summarize CNN and RNN 文章目录 Summer 2: Summarize CNN and RNNPart 1 Deep Learning> 层和块> 参数管理和延后初始化> 读写文件和GPU Part 2 CNN> 从…...

Spring Boot 集成 WebSocket 实现服务端推送消息到客户端

WebSocket 简介 WebSocket 协议是基于 TCP 的一种新的网络协议&#xff0c;它实现了浏览器与服务器全双工&#xff08;full-duplex&#xff09;通信—允许服务器主动发送信息给客户端&#xff0c;这样就可以实现从客户端发送消息到服务器&#xff0c;而服务器又可以转发消息到客…...

vr游乐场项目投资方案VR主题游乐馆互动体验

VR文旅景区沉浸互动体验项目是指利用虚拟现实技术在文旅景区中创建沉浸式的互动体验项目。通过虚拟现实技术&#xff0c;游客可以身临其境地体验景区的风景和文化&#xff0c;与虚拟场景中的元素进行互动。 普乐蛙VR设备 普乐蛙VR设备案例分享 这种项目可以为游客带来全新的旅游…...

chrom扩展开发配合百度图像文字识别实现自动登录(后端.net core web api)

好久没做浏览器插件开发了&#xff0c;因为公司堡垒机&#xff0c;每次登录都要输入账号密码和验证码。太浪费时间了&#xff0c;就想着做一个右键菜单形式的扩展。 实现思路也很简单&#xff0c;在这里做下记录&#xff0c;方便下次开发参考。 一&#xff0c;先来了解下chro…...

香港服务器怎么打开SSH

​  SSH是一种远程登录协议&#xff0c;可以通过加密方式在网络上安全地传输数据。它允许用户在远程服务器上执行命令&#xff0c;管理文件和目录&#xff0c;并进行其他系统管理任务。 如何打开SSH服务? 1.确认已安装OpenSSH服务器&#xff1a; 你可以通过命令sudoapt-geti…...

【LeetCode】437.路径总和Ⅲ

题目 给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点到子节…...

Mybatis-plus中操作JSON字段

1.实体类上要加上自动映射 TableName(value "school", autoResultMap true)2.json字段上加上json处理器 TableField(value "cover_url", typeHandler JacksonTypeHandler.class)private List<String> cover_url;参考博客 http://www.dedeyun.co…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...