做网站收费 知乎,兰州交通发展建设集团公司网站,外包合同究竟能不能签,网站 大气目录 1 主要内容
2 部分代码
3 程序结果
4 下载链接 1 主要内容
该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型#xff0c;考虑私家车、出租车和共用车三类交通工具特性和…目录 1 主要内容
2 部分代码
3 程序结果
4 下载链接 1 主要内容
该程序参考《基于动态交通信息的电动汽车充电负荷时空分布预测》和《基于动态交通信息的电动汽车充电需求预测模型及其对配网的影响分析》文献模型考虑私家车、出租车和共用车三类交通工具特性和移动负荷特性实现了基于动态交通信息的电动汽车充电负荷时空分布预测。将负荷预测情况和33节点配电网络进行结合形成交通网-配电网交互模型采用牛拉法进行潮流计算。程序采用matlab编写注释清晰方便学习
交通网-配电网交互模型
路网模型参考下图 很多文献都会用到路网结合模型这也是电动车研究领域的一个热点方向通过路网模型更能精确定位电能需求点以及对配电网络的影响。
动态交通路网模型
动态交通网络模型采用图论法进行建模拓扑结构示意图如下 具体的数学模型表达式为 式中G 为交通路网V 表示图 G 所有节点的集合E 表示图 G 所有路段的集合W 为路段权值的集合即道路路阻K 表示划分的时间段集合即将全天划分为 m个时间段。
交通网络生成代码如下
%%动态交通路网模型采用图论分析方法建模
%G为交通路网图V表示图G所有节点的集合本文设置32个配电网节点E表示所有路段的集合W为路段权重的集合即道路路阻K表示划分的时间段集合即将全天划分为m个时间段。
%路段权值W表示道路出行代价可采用路段长度、通行速度、行程时间等权值进行量化研究
%在城市路网中路口交叉节点多设置信号灯进行管控车辆行驶既受到路段阻抗影响又在交叉节点产生时间延误。
%因此城市道路路阻可表示为W(t)CV(t)RV(t);CV(t)表示节点阻抗模型RV(t)表示路段阻抗模型
%依据城市交通状况划分标准饱和度 S 评价指标畅通(0S≤0.6)、缓行(0.6S≤0.8)、拥挤(0.8S≤1.0)以及严重拥堵(1.0S≤2.0)。
%道路交叉口和路段通行能力不同可以得到不同饱和度对应的路段阻抗和节点阻抗模型
%RV(t)路段阻抗模型通过饱和度SQ/CQ为路段交通流量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)路段阻抗模型
alpha1.3;
beta1.2;
t010;
%% 信号周期c绿信比lamda路段车辆到达率q计算CV(t)节点阻抗模型
c30;
lamda0.7;
q0.8;
%% 2【路网结构】 邻接矩阵(此时建立的仅是结构而为给每条边赋以路段权值W)
LJzeros(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-32L(:,1))1;
LJ(L(:,1)*32-32L(:,2))1;
%
figure(1)
Ggraph(LJ,upper);%根据带权邻接矩阵生成无向图
% plot(G);
% title(无向图)
plot(G,EdgeLabel,G.Edges.Weight)
title(标定权重的无向图)
%% 3【阻抗模型权重W】(为给每条边赋以路段权值W)
% 1 随机生成S权重
% 2 或者 输入shortestpath函数求路径这一项操作没有便要做不知道作用是为何
Szeros(32,32);
S2*rand(32,32);
for i1:32for j1:32if LJ(i,j)1if S(i,j)1 Rv(i,j)t0*(1alpha*S(i,j)^beta);elseRv(i,j)t0*(1alpha*(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(W50))50;
figure(2)
bar3(W)
%
Ggraph(W,upper);
% plot(G);
% title(无向图)
plot(G,EdgeLabel,G.Edges.Weight)
title(标定权重的无向图)
%[path,distance]shortestpath(G,1,6) %这行代码在这块没用是多余的
%% 4【路程模型权重L】作为计算耗电量中的一个参数
RL1010*rand(32,32);
RLRL.*LJ;2 部分代码
load dataTRN.mat;
load dataEV.mat;
load dataWq.mat;
Ggraph(W,upper); %生成路-网耦合图GW是每条边的权重值W为32*32阶矩阵
Chargezeros(size(Mcar,1),5); %生成一个size(Mcar,1)1000*5的零矩阵其中size(Mcar,1)1000。
TP_carnumberzeros(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的数量
Pchargezeros(24,3); %生成一个24*3的零矩阵******PCharge代表24小时内私家车1公交车2私家车3
Pchar_slow12; %设置慢充充电功率为12KW
Pchar_fast48; %设置慢充充电功率为48KW
Pntchargezeros(24,32); %生成一个24*32的零矩阵PntCharge代表24个小时内32个配网节点的供电负荷电动汽车耗电量
%% MC
for icar1:size(Mcar,1) %EV的编号从1-1000共1000台EVsize(Mcar,1)1000一个for icar1:size(Mcar,1) 循环代表把第一台EV的%1-9个特征变量车辆编号icar、EV种类Icar_kind、EV初始位置Birthland、%目的地Destination、初始时刻tBirth1、返程时刻tBirth2、ev容量Cbat、初始soc SOC0、速度Vcar全部采集一遍%1000个for icar1:size(Mcar,1) 循环代表把1000台EV的%1-9个特征变量车辆编号icar、EV种类Icar_kind、EV初始位置Birthland、%目的地Destination、初始时刻tBirth1、返程时刻tBirth2、ev容量Cbat、初始soc SOC0、速度Vcar全部采集一遍icarIcar_kindMcar(icar,2);%EV种类%size(Mcar,2)1000BirthlandMcar(icar,3);%EV初始位置DestinationMcar(icar,4);%目的地tBirth1Mcar(icar,5);%初始时刻tBirth2Mcar(icar,6);%返程时刻CbatMcar(icar,7);%ev容量SOC0Mcar(icar,8);%初始socVcarMcar(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初始位置Birthlandcar(icar,3)EV目的地DestinationMcar(icar,4)continue %end %[path,distance]shortestpath(G,Birthland,Destination); %如果EV初始位置Birthlandcar(icar,3) 不等于 EV目的地DestinationMcar(icar,4)%则输出EV初始位置Birthlandcar(icar,3)与EV目的地DestinationMcar(icar,4)最短路径path与最短距离distance%% C1 私家车if Icar_kind1%考虑环境温度和速度 耗电量dE1.5*distance/Vcar(0.21-1e-3*Vcar1.531/Vcar)*distance; %由最短行驶距离distance电动汽车行驶实时车速VcarMcar(icar,9)计算出EV初始位置到目的地的耗电量SOC1SOC0-dE/0.9/Cbat; %由初始soc即SOC0Mcar(icar,8) 与 EV初始位置到目的地的耗电量 与 充电效率0.9 与 ev容量CbatMcar(icar,7)SOC2SOC1-dE/0.9/Cbat; %计算出电动汽车剩余电量SOC2tdest1tBirth1distance/Vcar; %到达目的地时间tdest1初始时刻行驶时间if SOC20 %判断私家车是否充电的条件% 触发慢充/计及排队时间TmmcWq(ceil(tdest1)); %ceil为向上取整T80tdest1(0.8-SOC1)*Cbat/Pchar_slowTmmc; %充电到0.8EV容量时间T80到达目的地时间慢充到0.8EV容量时间Tmmcif T800.8EV容量时间到达第二个目的地的时间Charge(icar,2)1; %Icar_kindMcar(icar,2);EV种类所以Charge(icar,2)赋值为私家车Icar_kind1Charge(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_kindMcar(icar,2);EV种类所以Charge(icar,2)赋值为私家车Icar_kind1Charge(icar,3)floor(tdest1); %EV初始位置Mcar(icar,3)赋值为向下取整tdest1Charge(icar,4)ceil(tBirth2); %目的地Mcar(icar,4)赋值为向上取整tBirth2因为此时T80tBirth2成立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所在列的交叉元素
3 程序结果 4 下载链接
见下方