简介
本程序参考Energy期刊论文《A coordinated charging scheduling method for electric vehicles considering different charging demands》,程序注释清晰,算例丰富,干货满满!下面对文章和程序做简单介绍。
大量电动汽车充电的不协调可能导致峰值负荷的大幅激增,进一步影响电力系统的运行稳定性。因此,文章提出了一种微电网中电动汽车的协调充电调度方法,将负荷需求从高峰时段转移到低谷时段。在所提出的方法中,基于充电紧急度指标来选择电动汽车的充电模式,该指标可以反映不同的充电需求。然后,建立了协调充电调度优化模型,以最小化总峰谷负荷差。考虑了慢充电动汽车、快充电动汽车和微电网运行的约束条件。此外,使用蒙特卡罗(MCS)来模拟电动汽车的随机性。研究结果揭示了电动汽车车主的充电模式选择以及微电网运行的调峰填谷。
该模型在MATLAB中调用YALMIP建立,并通过CPLEX求解器进行求解。实验中的输入数据是根据概率密度函数随机生成的,以模拟真实的电动汽车充电情况。家庭充电模式采用的晚充白用,文中结果:
程序结果
本程序由主函数和多个子函数组成,每个子函数对应不同的优化目标和约束条件。
限于篇幅,仅列出了部分结果图片!!!
部分程序
%以矩阵运算为主,进行求解
homeChargingPattern(n) =
getHomeEV(n);%生成家庭充电模式下EV信息 =
printHomeEV(EV);%显示EV的统计信
[P_basic(49:96,1);P_basic(1:48,1)];%家庭模式下以12点作为调度起点,36点作为调度终点 =
EV.J_c + mod(EV.J_dis-EV.J_c+96,96);%到达时间早于出发时间,视作第二天到达 =
48)=EV.J_dis(EV.J_c<=48)+96;%第一天的1~48时隙视作第二天1~48时隙 =
48)=EV.J_c(EV.J_c<=48)+96;%第一天的1~48时隙视作第二天1~48时隙 =
49+96)=48+96;%离开时间超出调度时间视作在调度截止前离开 =
%计算非协调调度下微电网在一天96个时隙下的负载
false(n,96);%保存调度结果x_max = false(n,96); =
%计算每个EV满足SOC_max电量和SOC_min电量的结束充电时刻
min(EV.J_dis,EV.J_c+floor(((EV.SOC_min-EV.SOC_con)*Cap_bat_EV)/(P_mid_EV*eta_EV*Delta_T))); =
min(EV.J_dis,EV.J_c+floor(((EV.SOC_max-EV.SOC_con)*Cap_bat_EV)/(P_mid_EV*eta_EV*Delta_T))); =
(J_min_end(i)-48))=1;x_max(i,(EV.J_c(i)-48):(J_max_end(i)-48))=1; :
P_basic_home + P_mid_EV*sum(x_min,1)';P_SOC_max = P_basic_home + P_mid_EV*sum(x_max,1)'; =
%计算协调调度下微电网在一天96个时隙下的负载%YALMIP建模
binvar(n,96);%计算EV的充电需求 =
(EV.J_dis-EV.J_c)*Delta_T*P_slow_EV*eta_EV-... =
(EV.SOC_min-EV.SOC_con)*Cap_bat_EV;
P_basic_home;%调度总负载 =
EV.SOC_con;%最终充电量 =
%定义约束条件
false(n,96);%约束比较矩阵c1,记录x中为定值的点的值为c1中的值 =
false(n,96);%约束矩阵c2,x中为定值的点在c2中为1 =
ev = EV(i,:);%取出EV(i)的信息
if ev.CUI<0%如果ev为紧急充电需求(第i行为定值,)
%计算紧急充电需求的充电结束时刻,J_end
min(ev.J_dis,ev.J_c+floor(((ev.SOC_max-ev.SOC_con)*Cap_bat_EV)/(P_fast_EV*eta_EV*Delta_T))); =
J_end-48)=1;c2(i,:)=1; %将其加入总负载 :
P_SOC_crd = P_SOC_crd + P_fast_EV * x(i,:)';
else%如果ev为非紧急充电需求
ev.J_c-48-1 ev.J_dis-48+1:96])=1;%将其加入总负载 :
P_SOC_crd + P_slow_EV * x(i,:)';%表示ev的最终充电量 =
ev.SOC_con + (Delta_T*P_slow_EV*eta_EV/Cap_bat_EV)*sum(x(i,:),2); =
部分内容源自网络,侵权联系删除!
欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!
更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!