目录
叙述
1.提出了一种电动汽车 (EV) 的协调充电调度方法
2.在所提出的方法中估计了电动汽车用户充电需求的紧迫性
3.根据充电需求的紧迫性为电动汽车选择最佳充电模式
4.该模型可以实现微电网的削峰填谷该
5.模型的性能在不同的充电模式和EV规模下进行评估
一、整体思路
⽬前,已经有⼀些关于电动汽⻋充电调度优化的研究⼯作。然⽽,现有的研究主要集中在供给侧,以实现最低的运营成本和最⼩的峰⾕负荷差异。电动汽⻋充电调度通常不会考虑电动汽 ⻋⻋主的具体充电需求。在实际情况下,电动⻋⻋主的充电需求通常是不同的,尤其是在部分电动 ⻋有紧急充电需求的情况下。为了填补这⼀空⽩,本研究提出了⼀种针对电动汽⻋的协调充电调度⽅法,同时考虑了电动汽⻋⻋主的不同充电需求。
首先利用蒙特卡洛方法生成EV分布图,根据交通部统计的数据在充电开始和充电结束生成正太分布函数,接着分别对家庭和公告的模式下充电结果分析,得出不同情况下的充电需求。
二、相关代码
家庭模式下的代码:
function [EV] = getHomeEV(n)
init;%获取全局变量
t_c = randn([n 1]);
t_c = t_c*sigma_1tc + mu_1tc;
t_c = t_c.*(mu_1tc-12<t_c & t_c<=24)+(t_c-24).*(24<t_c & t_c<=mu_1tc+12);
t_dis = randn([n 1]);
t_dis = t_dis*sigma_1tdis + mu_1tdis;
t_dis = t_dis.*(0<t_dis & t_dis<=mu_1tdis+12)+(t_dis+24).*(mu_1tdis-12<t_dis & t_dis<=0);
J_c = ceil(t_c/Delta_T);%向上取整
J_c(J_c==0) = 96;%0时隙就是昨天的96
J_dis = floor(t_dis/Delta_T);%向下取整
J_dis(J_dis==0) = 96;%0时隙就是昨天的96
SOC_con = unifrnd(SOC_con_a,SOC_con_b,n,1);%产生均匀分布的随机数
SOC_min = unifrnd(SOC_min_a,SOC_min_b,n,1);
SOC_max = unifrnd(SOC_max_a,SOC_max_b,n,1);
EV = table(t_c,t_dis,J_c,J_dis,SOC_con,SOC_min,SOC_max);
%以矩阵运算为主,进行求解
function [] = homeChargingPattern(n)
init;%获取所有参数
EV = getHomeEV(n);%生成家庭充电模式下EV信息
printHomeEV(EV);%显示EV的统计信息
P_basic_home = [P_basic(49:96,1);P_basic(1:48,1)];%家庭模式下以12点作为调度起点,36点作为调度终点
EV.J_dis=EV.J_c + mod(EV.J_dis-EV.J_c+96,96);%到达时间早于出发时间,视作第二天到达
EV.J_dis(EV.J_c<=48)=EV.J_dis(EV.J_c<=48)+96;%第一天的1~48时隙视作第二天1~48时隙
EV.J_c(EV.J_c<=48)=EV.J_c(EV.J_c<=48)+96;%第一天的1~48时隙视作第二天1~48时隙
EV.J_dis(EV.J_dis>=49+96)=48+96;%离开时间超出调度时间视作在调度截止前离开
%计算非协调调度下微电网在一天96个时隙下的负载
x_min = false(n,96);%保存调度结果
x_max = false(n,96);
%计算每个EV满足SOC_max电量和SOC_min电量的结束充电时刻
J_min_end = min(EV.J_dis,EV.J_c+floor(((EV.SOC_min-EV.SOC_con)*Cap_bat_EV)/(P_mid_EV*eta_EV*Delta_T)));
J_max_end = min(EV.J_dis,EV.J_c+floor(((EV.SOC_max-EV.SOC_con)*Cap_bat_EV)/(P_mid_EV*eta_EV*Delta_T)));
for i=1:n
x_min(i,(EV.J_c(i)-48):(J_min_end(i)-48))=1;
x_max(i,(EV.J_c(i)-48):(J_max_end(i)-48))=1;
end
P_SOC_min = P_basic_home + P_mid_EV*sum(x_min,1)';
P_SOC_max = P_basic_home + P_mid_EV*sum(x_max,1)';
公共模式下计算规则及相关约束:
function [EV] = getPublicEV(n)
init;%获取全局变量
t_c = randn([n 1]);
t_c = t_c*sigma_2tc + mu_2tc;
t_c = t_c.*(0<t_c & t_c<=mu_2tc+12)+(t_c+24).*(mu_2tc-12<t_c & t_c<=0);
t_dis = randn([n 1]);
t_dis = t_dis*sigma_2tdis + mu_2tdis;
t_dis = t_dis.*(mu_2tdis-12<t_dis & t_dis<=24)+(t_dis-24).*(24<t_dis & t_dis<=mu_2tdis+12);
J_c = ceil(t_c/Delta_T);%向上取整
J_c(J_c==0) = 96;%0时隙就是昨天的96
J_dis = floor(t_dis/Delta_T);%向下取整
J_dis(J_dis==0) = 96;%0时隙就是昨天的96
SOC_con = unifrnd(SOC_con_a,SOC_con_b,n,1);%产生均匀分布的随机数
SOC_min = unifrnd(SOC_min_a,SOC_min_b,n,1);
SOC_max = unifrnd(SOC_max_a,SOC_max_b,n,1);
EV = table(t_c,t_dis,J_c,J_dis,SOC_con,SOC_min,SOC_max);
end
function [] = publicChargingPattern(EV)
init;%获取所有参数
P_basic_public = P_basic;%公共模式下以1点作为调度起点,24点作为调度终点
EV.J_dis=EV.J_c + mod(EV.J_dis-EV.J_c+96,96);%到达时间早于出发时间,视作第二天到达
EV([EV.J_dis< 1 EV.J_c> 96],:)=[];
EV.J_dis(EV.J_dis>96 & EV.J_c<=96)=96;
EV.J_c(EV.J_dis>=1 & EV.J_c<1)=1;
[n,~]=size(EV);
%计算非协调调度下微电网在一天96个时隙下的负载
x_min = false(n,96);%保存调度结果
x_max = false(n,96);
%计算每个EV满足SOC_max电量和SOC_min电量的结束充电时刻
J_min_end = min(EV.J_dis,EV.J_c+floor(((EV.SOC_min-EV.SOC_con)*Cap_bat_EV)/(P_mid_EV*eta_EV*Delta_T)));
J_max_end = min(EV.J_dis,EV.J_c+floor(((EV.SOC_max-EV.SOC_con)*Cap_bat_EV)/(P_mid_EV*eta_EV*Delta_T)));
for i=1:n
x_min(i,EV.J_c(i):J_min_end(i))=1;
x_max(i,EV.J_c(i):J_max_end(i))=1;
end
P_SOC_min = P_basic_public + P_mid_EV*sum(x_min,1)';
P_SOC_max = P_basic_public + P_mid_EV*sum(x_max,1)';
结论
本研究结合电动汽⻋⻋主的紧急充电需求,提出了⼀种电动汽⻋协调充 电调度⽅法。在充电调度过程中,所有的电动汽⻋都是按照不同的组来调度的,⽽不是作为⼀个整体来 调度的。实验中考虑了两种充电模式,以说明该⽅法对移峰和填⾕的影响。此外,在实验中应 ⽤了三组EV量表来测试该⽅法的有效性。最后,进⾏了 100 次仿真,并使⽤ 300 辆电动汽⻋ 的两种充电模式来评估所提⽅法的有效性。