Sci论文复现:考虑不同充电需求的电动汽车有序充电调度方法程序代码!

文摘   科学   2024-12-22 11:40   江苏  

简介


本程序参考Energy期刊论文《A coordinated charging scheduling method for electric vehicles considering different charging demands》,程序注释清晰,算例丰富,干货满满!下面对文章和程序做简单介绍。

大量电动汽车充电的不协调可能导致峰值负荷的大幅激增,进一步影响电力系统的运行稳定性。因此,文章提出了一种微电网中电动汽车的协调充电调度方法,将负荷需求从高峰时段转移到低谷时段。在所提出的方法中,基于充电紧急度指标来选择电动汽车的充电模式,该指标可以反映不同的充电需求。然后,建立了协调充电调度优化模型,以最小化总峰谷负荷差。考虑了慢充电动汽车、快充电动汽车和微电网运行的约束条件。此外,使用蒙特卡罗(MCS)来模拟电动汽车的随机性。研究结果揭示了电动汽车车主的充电模式选择以及微电网运行的调峰填谷。

该模型在MATLAB中调用YALMIP建立,并通过CPLEX求解器进行求解。实验中的输入数据是根据概率密度函数随机生成的,以模拟真实的电动汽车充电情况。家庭充电模式采用的晚充白用,文中结果:

程序结果


限于篇幅,仅列出了部分结果图片!!!

部分程序


%以矩阵运算为主,进行求解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)';    %计算协调调度下微电网在一天96个时隙下的负载%YALMIP建模    %定义待调度变量    x = binvar(n,96);%计算EV的充电需求    EV.CUI = (EV.J_dis-EV.J_c)*Delta_T*P_slow_EV*eta_EV-...        (EV.SOC_min-EV.SOC_con)*Cap_bat_EV;    P_SOC_crd = P_basic_home;%调度总负载    SOC_dis = EV.SOC_con;%最终充电量    %定义约束条件    c1 = false(n,96);%约束比较矩阵c1,记录x中为定值的点的值为c1中的值    c2 = false(n,96);%约束矩阵c2,x中为定值的点在c2中为1    for i = 1:n         ev = EV(i,:);%取出EV(i)的信息if ev.CUI<0%如果ev为紧急充电需求(第i行为定值,)            %计算紧急充电需求的充电结束时刻,J_endJ_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)));c1(i,ev.J_c-48:J_end-48)=1;c2(i,:)=1;                       %将其加入总负载   P_SOC_crd = P_SOC_crd + P_fast_EV * x(i,:)';  else%如果ev为非紧急充电需求c2(i,[1:ev.J_c-48-1 ev.J_dis-48+1:96])=1;%将其加入总负载P_SOC_crd = P_SOC_crd + P_slow_EV * x(i,:)';%表示ev的最终充电量SOC_dis(i) = ev.SOC_con + (Delta_T*P_slow_EV*eta_EV/Cap_bat_EV)*sum(x(i,:),2);

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!

创新优化及预测代码
免费分享研究理论及方法,基础代码资料,努力提供电力系统相关专业预测及优化研究领域的创新性代码,保质保量!面包多地址:https://mbd.pub/o/yc_yh/work
 最新文章