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

文摘   科学   2024-11-10 08:30   江苏  

简介


程序参考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)));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;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;_SOC_crd = P_basic_home;%调度总负载SOC_dis = EV.SOC_con;%最终充电量 %定义约束条件c1 = false(n,96);%约束比较矩阵c1,记录x中为定值的点的值为c1中的值c2 = false(n,96);%约束矩阵c2,x中为定值的点在c2中为1ev = 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
 最新文章