目录
1 概述
2 电动汽车的种类及特点
3 Matlab代码
4 运行结果
?
1 概述
社会在不断发展,通过开发和消耗大量能源来满足快速发展的社会的需要,正在引发全球能源危机。大量能源消耗产生的废气和废物造成水污染、土壤污染、空气污染和全球变暖,严重破坏生态环境。电动汽车的发展越来越快,市场越来越成熟,智能电网的建设也为电动汽车的发展提供了条件。电动汽车的充电行为对电网建设提出了更高的要求,充电需求是当今亟待解决的问题。本文介绍电动汽车充电技术,分析应用现状,探讨发展趋势。
当今世界正处于能源危机之中,工业的发展造成资源的过度消耗和不可再生资源的稀缺。环境保护和减排受到极大威胁,是人类社会生存和发展的必然选择。随着石油危机和化学燃料的使用引起的环境问题增多,各国开始意识到能源转型、节能减排正成为汽车发展的主要方向,以及如何发展汽车技术以实现目标节能减排问题成为汽车发展的难题。
2 电动汽车的种类及特点
燃料汽车每年消耗世界石油产量的一半以上,近年来不断上涨的油价表明人类可用的化石能源稀缺是造成它的原因。基于以上原因,电动汽车逐渐成为人们关注的热点之一。电动汽车主要分为纯电动汽车、混合动力汽车和燃料电池电动汽车三种。纯电动汽车是完全由二次电,池(如铅酸电池、镍氢电池、镍氢电池或凯恩离子电池)供电的车辆。混合动力汽车是纯电动汽车发展过程中为市场化而生产的新车型。一般采用内燃机和电动机,通过先进的控制系统将内燃机和储能装置(高性能电池、超级电容器等)结合起来,为车辆行驶提供必要的动力。混合动力汽车最明显的代表可以说是丰田凯美瑞,它开创了油电混合动力新技术,并大量植入车辆,以期从根本上消除交通对石油资源的依赖。商业广告开启汽车动力,开启新技术新篇章,因此,混合动力汽车是电动汽车发展的过渡模式。燃料电池电动汽车是以燃料电池为动力源的电动汽车。燃料电池是一种利用氢气和氧气在催化剂的作用下,通过电化学反应直接发电的装置,具有完全无污染的优点,现阶段燃料电池的许多核心技术仍然存在。、
3 Matlab代码
%% 主函数,按顺序运行下列文件,即可得到全文所有结果,以mat文件保存
%===@qq:207962168======
%===@VX:he207962168====
%====step1:生成电动汽车数据====
Sampling_EV
%====step2:分析充电站的历史数据,评估可调度潜力===
potential_history
%====step3:由历史可调度潜力预测日前可调度潜力=====
potential_DA
%===step4:计算日前无序充电负荷======
disorder_charging
%====step5:计算实时可调度潜力=====
potential_RT
%===step6:由日前无序充电负荷参与日前电力市场投标====
disorder_bidding
%===step7:由联合报价模型确定节点边际电价,作为报价的参考(理论上应该由历史报价数据得到),充电站联合报价模式
Bidding_price_reference
%step8:各充电站通过预测其他充电站的报价,独立报价,求解MPEC问题,调用函数bidding_DA_callback
bidding_DA
%step9:根据充电站的日前报价进行出清,其中考虑了线性规划的多解性,尽可能追踪日前计划
DA_clearing
%step10:个体竞标模式,实时,调用函数RT_single_Callback
RT_single
%step11:合作竞标模式,实时,调用函数RT_cooperation_Callback
RT_cooperation
%step12:集中调度模式,日前
DA_center
%step13:集中调度模式,实时,调用函数RT_center_Callback
RT_center
%step14:价格接受者,完全竞争市场,日前
DA_pricetaken
%step15:价格接受者,完全竞争市场,实时
RT_pricetaken
%% 蒙特卡洛抽样%%%
%I类车(800),夜晚充电,私家车;II类车(400),夜晚充电,网约车;III类车(800),白天充电,上班族。
%抽样得到不同类型的电动汽车,并分配至充电站
%其中前1000次为历史电动汽车数据,第1001次为仿真过程中的实际电动汽车数据
clear
clc
rng(1);%固定随机数种子(伪随机:保证蒙特卡洛抽样的结果稳定)
Ta_EV1=normrnd(18,2,[1001,1000]);%电动汽车1的停车时间抽样
Tl_EV1=normrnd(8,2,[1001,1000]);%电动汽车1的离开时间抽样
S0_EV1=unifrnd(0.4,0.6,[1001,1000]);%电动汽车1的初始SOC抽样
Ta_EV2=normrnd(21,1,[1001,500]);
Tl_EV2=normrnd(7,1,[1001,500]);
S0_EV2=unifrnd(0.2,0.4,[1001,500]);
Ta_EV3=normrnd(9,sqrt(2),[1001,1000]);
Tl_EV3=normrnd(17,sqrt(2),[1001,1000]);
S0_EV3=unifrnd(0.4,0.6,[1001,1000]);
EV1_CS1=round(unifrnd(180,220,[1001,1]));%充电站1中I类车的数量
EV1_CS2=round(unifrnd(180,220,[1001,1]));%充电站2中I类车的数量
EV1_CS3=zeros(1001,1);%充电站3中I类车的数量
EV1_CS4=round(unifrnd(380,420,[1001,1]));%充电站4中I类车的数量
EV2_CS1=round(unifrnd(190,210,[1001,1]));
EV2_CS2=round(unifrnd(80,120,[1001,1]));
EV2_CS3=round(unifrnd(90,110,[1001,1]));
EV2_CS4=zeros(1001,1);
EV3_CS1=zeros(1001,1);
EV3_CS2=round(unifrnd(380,420,[1001,1]));
EV3_CS3=round(unifrnd(380,420,[1001,1]));
EV3_CS4=zeros(1001,1);
%数据修正,从08:00开始计算,超出范围的进行截尾(截尾正态分布)
Ta_EV1=Ta_EV1-8;Tl_EV1=Tl_EV1+24-8;Ta_EV2=Ta_EV2-8;Tl_EV2=Tl_EV2+24-8;Ta_EV3=Ta_EV3-8;Tl_EV3=Tl_EV3-8;S0_EV1=32*S0_EV1;S0_EV2=32*S0_EV2;S0_EV3=32*S0_EV3;
DA_Ta_EV1=ceil(4*Ta_EV1(1:1000,:));DA_Ta_EV2=ceil(4*Ta_EV2(1:1000,:));DA_Ta_EV3=ceil(4*Ta_EV3(1:1000,:));%日前离散化
DA_Tl_EV1=floor(4*Tl_EV1(1:1000,:));DA_Tl_EV2=floor(4*Tl_EV2(1:1000,:));DA_Tl_EV3=floor(4*Tl_EV3(1:1000,:));
DA_S0_EV1=S0_EV1(1:1000,:);DA_S0_EV2=S0_EV2(1:1000,:);DA_S0_EV3=S0_EV3(1:1000,:);
RT_Ta_EV1=ceil(4*Ta_EV1(1001,:));RT_Ta_EV2=ceil(4*Ta_EV2(1001,:));RT_Ta_EV3=ceil(4*Ta_EV3(1001,:));%实时离散化
RT_Tl_EV1=floor(4*Tl_EV1(1001,:));RT_Tl_EV2=floor(4*Tl_EV2(1001,:));RT_Tl_EV3=floor(4*Tl_EV3(1001,:));
RT_S0_EV1=S0_EV1(1001,:);RT_S0_EV2=S0_EV2(1001,:);RT_S0_EV3=S0_EV3(1001,:);
DA_Ta_EV1(find(DA_Ta_EV1<1))=1;DA_Ta_EV2(find(DA_Ta_EV2<1))=1;DA_Ta_EV3(find(DA_Ta_EV3<1))=1;%Ta截首
RT_Ta_EV1(find(RT_Ta_EV1<1))=1;RT_Ta_EV2(find(RT_Ta_EV2<1))=1;RT_Ta_EV3(find(RT_Ta_EV3<1))=1;
DA_Ta_EV1(find(DA_Ta_EV1>96))=96;DA_Ta_EV2(find(DA_Ta_EV2>96))=96;DA_Ta_EV3(find(DA_Ta_EV3>96))=96;%Ta截尾
RT_Ta_EV1(find(RT_Ta_EV1>96))=96;RT_Ta_EV2(find(RT_Ta_EV2>96))=96;RT_Ta_EV3(find(RT_Ta_EV3>96))=96;
DA_Tl_EV1(find(DA_Tl_EV1<1))=1;DA_Tl_EV2(find(DA_Tl_EV2<1))=1;DA_Tl_EV3(find(DA_Tl_EV3<1))=1;%Tl截首
RT_Tl_EV1(find(RT_Tl_EV1<1))=1;RT_Tl_EV2(find(RT_Tl_EV2<1))=1;RT_Tl_EV3(find(RT_Tl_EV3<1))=1;
DA_Tl_EV1(find(DA_Tl_EV1>96))=96;DA_Tl_EV2(find(DA_Tl_EV2>96))=96;DA_Tl_EV3(find(DA_Tl_EV3>96))=96;%Tl截尾
RT_Tl_EV1(find(RT_Tl_EV1>96))=96;RT_Tl_EV2(find(RT_Tl_EV2>96))=96;RT_Tl_EV3(find(RT_Tl_EV3>96))=96;
index=find(0.25*6.6*(DA_Tl_EV1-DA_Ta_EV1+1)<32*0.9-DA_S0_EV1);%日前数据修正,若不合理则赋期望值
for i=1:length(index)
DA_Ta_EV1(index(i))=40;DA_Tl_EV1(index(i))=96;
end
index=find(6.6*(DA_Tl_EV2-DA_Ta_EV2+1)<32*0.9-DA_S0_EV2);
for i=1:length(index)
DA_Ta_EV2(index(i))=52;DA_Tl_EV2(index(i))=92;
end
index=find(6.6*(DA_Tl_EV3-DA_Ta_EV3+1)<32*0.9-DA_S0_EV3);
for i=1:length(index)
DA_Ta_EV3(index(i))=4;DA_Tl_EV3(index(i))=36;
end
index=find(0.25*6.6*(RT_Tl_EV1-RT_Ta_EV1+1)<32*0.9-RT_S0_EV1);%实时数据修正,若不合理则赋期望值
for i=1:length(index)
RT_Ta_EV1(index(i))=40;RT_Tl_EV1(index(i))=96;
end
index=find(0.25*6.6*(RT_Tl_EV2-RT_Ta_EV2+1)<32*0.9-RT_S0_EV2);
for i=1:length(index)
RT_Ta_EV2(index(i))=52;RT_Tl_EV2(index(i))=92;
end
index=find(0.25*6.6*(RT_Tl_EV3-RT_Ta_EV3+1)<32*0.9-RT_S0_EV3);
for i=1:length(index)
RT_Ta_EV3(index(i))=4;RT_Tl_EV3(index(i))=36;
end
%%%车辆分配%%%
for i=1:1000
data_CS1(i).Ta=[DA_Ta_EV1(i,1:EV1_CS1(i)),DA_Ta_EV2(i,1:EV2_CS1(i)),DA_Ta_EV3(i,1:EV3_CS1(i))];
data_CS2(i).Ta=[DA_Ta_EV1(i,1+EV1_CS1(i):EV1_CS1(i)+EV1_CS2(i)),DA_Ta_EV2(i,1+EV2_CS1(i):EV2_CS1(i)+EV2_CS2(i)),DA_Ta_EV3(i,1+EV3_CS1(i):EV3_CS1(i)+EV3_CS2(i))];
data_CS3(i).Ta=[DA_Ta_EV1(i,1+EV1_CS1(i)+EV1_CS2(i):EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i)),DA_Ta_EV2(i,1+EV2_CS1(i)+EV2_CS2(i):EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i)),DA_Ta_EV3(i,1+EV3_CS1(i)+EV3_CS2(i):EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i))];
data_CS4(i).Ta=[DA_Ta_EV1(i,1+EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i):EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i)+EV1_CS4(i)),DA_Ta_EV2(i,1+EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i):EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i)+EV2_CS4(i)),DA_Ta_EV3(i,1+EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i):EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i)+EV3_CS4(i))];
data_CS1(i).Tl=[DA_Tl_EV1(i,1:EV1_CS1(i)),DA_Tl_EV2(i,1:EV2_CS1(i)),DA_Tl_EV3(i,1:EV3_CS1(i))];
data_CS2(i).Tl=[DA_Tl_EV1(i,1+EV1_CS1(i):EV1_CS1(i)+EV1_CS2(i)),DA_Tl_EV2(i,1+EV2_CS1(i):EV2_CS1(i)+EV2_CS2(i)),DA_Tl_EV3(i,1+EV3_CS1(i):EV3_CS1(i)+EV3_CS2(i))];
data_CS3(i).Tl=[DA_Tl_EV1(i,1+EV1_CS1(i)+EV1_CS2(i):EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i)),DA_Tl_EV2(i,1+EV2_CS1(i)+EV2_CS2(i):EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i)),DA_Tl_EV3(i,1+EV3_CS1(i)+EV3_CS2(i):EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i))];
data_CS4(i).Tl=[DA_Tl_EV1(i,1+EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i):EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i)+EV1_CS4(i)),DA_Tl_EV2(i,1+EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i):EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i)+EV2_CS4(i)),DA_Tl_EV3(i,1+EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i):EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i)+EV3_CS4(i))];
data_CS1(i).S0=[DA_S0_EV1(i,1:EV1_CS1(i)),DA_S0_EV2(i,1:EV2_CS1(i)),DA_S0_EV3(i,1:EV3_CS1(i))];
data_CS2(i).S0=[DA_S0_EV1(i,1+EV1_CS1(i):EV1_CS1(i)+EV1_CS2(i)),DA_S0_EV2(i,1+EV2_CS1(i):EV2_CS1(i)+EV2_CS2(i)),DA_S0_EV3(i,1+EV3_CS1(i):EV3_CS1(i)+EV3_CS2(i))];
data_CS3(i).S0=[DA_S0_EV1(i,1+EV1_CS1(i)+EV1_CS2(i):EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i)),DA_S0_EV2(i,1+EV2_CS1(i)+EV2_CS2(i):EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i)),DA_S0_EV3(i,1+EV3_CS1(i)+EV3_CS2(i):EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i))];
data_CS4(i).S0=[DA_S0_EV1(i,1+EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i):EV1_CS1(i)+EV1_CS2(i)+EV1_CS3(i)+EV1_CS4(i)),DA_S0_EV2(i,1+EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i):EV2_CS1(i)+EV2_CS2(i)+EV2_CS3(i)+EV2_CS4(i)),DA_S0_EV3(i,1+EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i):EV3_CS1(i)+EV3_CS2(i)+EV3_CS3(i)+EV3_CS4(i))];
end
data_CS1(1001).Ta=[RT_Ta_EV1(1:EV1_CS1(1001)),RT_Ta_EV2(1:EV2_CS1(1001)),RT_Ta_EV3(1:EV3_CS1(1001))];
data_CS2(1001).Ta=[RT_Ta_EV1(1+EV1_CS1(1001):EV1_CS1(1001)+EV1_CS2(1001)),RT_Ta_EV2(1+EV2_CS1(1001):EV2_CS1(1001)+EV2_CS2(1001)),RT_Ta_EV3(1+EV3_CS1(1001):EV3_CS1(1001)+EV3_CS2(1001))];
data_CS3(1001).Ta=[RT_Ta_EV1(1+EV1_CS1(1001)+EV1_CS2(1001):EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001)),RT_Ta_EV2(1+EV2_CS1(1001)+EV2_CS2(1001):EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001)),RT_Ta_EV3(1+EV3_CS1(1001)+EV3_CS2(1001):EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001))];
data_CS4(1001).Ta=[RT_Ta_EV1(1+EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001):EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001)+EV1_CS4(1001)),RT_Ta_EV2(1+EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001):EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001)+EV2_CS4(1001)),RT_Ta_EV3(1+EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001):EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001)+EV3_CS4(1001))];
data_CS1(1001).Tl=[RT_Tl_EV1(1:EV1_CS1(1001)),RT_Tl_EV2(1:EV2_CS1(1001)),RT_Tl_EV3(1:EV3_CS1(1001))];
data_CS2(1001).Tl=[RT_Tl_EV1(1+EV1_CS1(1001):EV1_CS1(1001)+EV1_CS2(1001)),RT_Tl_EV2(1+EV2_CS1(1001):EV2_CS1(1001)+EV2_CS2(1001)),RT_Tl_EV3(1+EV3_CS1(1001):EV3_CS1(1001)+EV3_CS2(1001))];
data_CS3(1001).Tl=[RT_Tl_EV1(1+EV1_CS1(1001)+EV1_CS2(1001):EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001)),RT_Tl_EV2(1+EV2_CS1(1001)+EV2_CS2(1001):EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001)),RT_Tl_EV3(1+EV3_CS1(1001)+EV3_CS2(1001):EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001))];
data_CS4(1001).Tl=[RT_Tl_EV1(1+EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001):EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001)+EV1_CS4(1001)),RT_Tl_EV2(1+EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001):EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001)+EV2_CS4(1001)),RT_Tl_EV3(1+EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001):EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001)+EV3_CS4(1001))];
data_CS1(1001).S0=[RT_S0_EV1(1:EV1_CS1(1001)),RT_S0_EV2(1:EV2_CS1(1001)),RT_S0_EV3(1:EV3_CS1(1001))];
data_CS2(1001).S0=[RT_S0_EV1(1+EV1_CS1(1001):EV1_CS1(1001)+EV1_CS2(1001)),RT_S0_EV2(1+EV2_CS1(1001):EV2_CS1(1001)+EV2_CS2(1001)),RT_S0_EV3(1+EV3_CS1(1001):EV3_CS1(1001)+EV3_CS2(1001))];
data_CS3(1001).S0=[RT_S0_EV1(1+EV1_CS1(1001)+EV1_CS2(1001):EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001)),RT_S0_EV2(1+EV2_CS1(1001)+EV2_CS2(1001):EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001)),RT_S0_EV3(1+EV3_CS1(1001)+EV3_CS2(1001):EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001))];
data_CS4(1001).S0=[RT_S0_EV1(1+EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001):EV1_CS1(1001)+EV1_CS2(1001)+EV1_CS3(1001)+EV1_CS4(1001)),RT_S0_EV2(1+EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001):EV2_CS1(1001)+EV2_CS2(1001)+EV2_CS3(1001)+EV2_CS4(1001)),RT_S0_EV3(1+EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001):EV3_CS1(1001)+EV3_CS2(1001)+EV3_CS3(1001)+EV3_CS4(1001))];
save('data_EV','data_CS1','data_CS2','data_CS3','data_CS4');%电动汽车抽样数据
4 运行结果
?
|