基于自适应遗传算法风光场景生成的电动汽车并网优化调度【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

由于全球能源储备严重不足,石油等不可再生能源严重短缺。与此同时,温室效应也逐年增强,显然,传统燃油汽车已不符合未来时代发展的要求。对于汽车而言寻求一种替代燃油的动力能源已迫在眉睫,于是电动汽车应运而生,并得到各国的大力推广与发展。因电动汽车具备无排放物、只耗费电能等优势,电动汽车的大量普及大势所趋。而大量电动汽车无序充电会对电力系统尤其是配电系统的安全与经济运行带来影响甚至挑战。大规模电动汽车无序接入电网充电将对电力系统的规划与运行产生不可忽视的影响。电动汽车有序充电控制对于降低电网运行风险,提高电网运行效益与可靠性具有重要意义。充电站作为电动汽车的基础设施,实现电动汽车的有序充电是必要的。而且从电动汽车充电站为实现自身利益的最大化角度考虑,必然需要对电动汽车充电行为进行有序引导。而随着电动汽车接入规模逐渐庞大,并且每辆电动汽车的充电行为互不影响的情况下,引导用户的充电行为将变得困难。在保证满足用户需求、电动汽车充电电池容量、电网变压器容量等约束的前提下,如何在短时间内对接入的电动汽车充电站进行优化调度,即如何提升调度效率使得策略更具现实意义是目前亟需解决的问题。

大规模电动汽车无序接入电网充电将对电力系统的规划与运行产生不可忽视的影响[34-35]。电动汽车有序充电控制对于降低电网运行风险,提高电网运行效益与可靠性具有重要意义。充电站作为电动汽车的基础设施,实现电动汽车的有序充电是必要的。而且从电动汽车充电站为实现自身利益的最大化角度考虑,必然需要对电动汽车充电行为进行有序引导。而随着电动汽车接入规模逐渐庞大,并且每辆电动汽车的充电行为互不影响的情况下,引导用户的充电行为将变得困难。在保证满足用户需求、电动汽车充电电池容量、电网变压器容量等约束的前提下,如何在短时间内对接入的电动汽车充电站进行优化调度,即如何提升调度效率使得策略更具现实意义是目前亟需解决的问题。
①基于蒙特卡洛,copula函数,fuzzy-kmeans获取6个典型场景进行随机优化调度。
②多类型电动汽车采用分时电价调度,目标函数考虑上级电网出力、峰谷差惩罚费用、风光调度、电动汽车负荷调度费用和网损费用。
③在IEEE33节点系统中进行仿真算例分析。

基于蒙特卡洛模拟方法,copula函数以及模糊k均值算法,可以通过对电力系统进行多方面数据模拟和分析,获取到6个典型场景,用于进行随机优化调度。这种方法可以帮助系统运营者预测不同情况下的电力需求和负荷分配,从而更好地进行电力调度和资源优化配置。

同时,考虑到电力系统中存在多种类型的电动汽车,可以采用分时电价调度来实现更加灵活的电力分配和利用。在优化的目标函数中,可以综合考虑上级电网的出力需求、峰谷差惩罚费用、风光能源调度、电动汽车负荷调度费用以及网损费用等方面,从而实现对电力系统的更有效管理和利用。

为了验证电力系统优化方案的有效性和稳定性,在仿真算例分析中可以选择在IEEE33节点系统中进行测试。通过对仿真结果的分析和比较,可以评估优化调度方案在实际系统中的应用效果,并对系统进行进一步改进和优化。

📚2 运行结果

部分代码:

%%公交汽车
function [Evload,feiyong]=EV_load_sim_bus(flag)
global price bsload PSS Pwuxu 
load ev.mat bsload

Ntest=20;%仿真程序 车辆数
SOC_end=0.9;
Pbiao=25;%充电功率为25kW
nn=0.9;%充电效率为0.9
Pcharge=Pbiao*nn;%实际充电的功率
Cbattery=100;        %电池容量
distance=unifrnd(20,120,1,Ntest);     %Ntest辆车 每辆车的单程距离 (高斯分布)
judge=0.15*distance/Cbattery;          %单程耗电SOC
SOC=rand(1,Ntest).*(1-judge)+judge; %初始SOC
timestart=5.5;                     %8点离家
timework=normrnd(5.5,0.0,1,Ntest);         %到班时间,服从正态分布
timerest=normrnd(16.5,0.5,1,Ntest);         %下班时间
timehome=normrnd(23,0.5,1,Ntest);         %到家时间,由于上下班高峰路况复杂,所以不认为下班回家耗时与上班耗时相同
SOC=SOC-judge;
battery=SOC*Cbattery; %到班后的电量
time1=zeros(1,Ntest);   %初始化时间点为0
time2=zeros(1,Ntest);
%SOC记录数组
SOC_sa=ones(1,Ntest);  %初始化SOC为1
SOC_sb=ones(1,Ntest);

for i=1:Ntest
    if SOC(i)<judge+0.2
        SOC_sa(i)=SOC(i);
        time1(i)=timework(i);  %到班后需要充电,充电开始时间为到班时间
        time2(i)=time1(i)+(1-SOC(i))*Cbattery/Pcharge;%充电结束时间,充电功率Pcharge
        SOC(i)=SOC_end; %下班前充满电
        battery(i)=Cbattery*SOC(i);
    end
end

SOC=SOC-judge;
battery=SOC*Cbattery; %到家后的电量
time3=zeros(1,Ntest);
time4=zeros(1,Ntest);

for i=1:Ntest
    if SOC(i)<max(judge,0.4)
        SOC_sb(i)=SOC(i);
        time3(i)=timehome(i);           %到家后需要充电,充电开始时间为到班时间
        time4(i)=time3(i)+(1-SOC(i))*Cbattery/Pcharge;%充电结束时间,充电功率4KW
        SOC(i)=SOC_end;                  %第二天8点前可以充满电
        battery(i)=Cbattery*SOC(i);
    end
end


time=0:0.1:48;
Ycharge=zeros(1,481);
roundn(time1,-1);
roundn(time2,-1);
roundn(time3,-1);
roundn(time4,-1);

 for i=1:Ntest     %找到所有充电车辆的电量
     if (time2(i)-time1(i)~=0)
         kstart=round(10*time1(i)+1);
         kend=round(10*time2(i)+1);
        Ycharge(1,kstart:kend)=Ycharge(1,kstart:kend)+1;
     end
     if (time4(i)-time3(i)~=0)
         kstart=round(10*time3(i)+1);
         kend=round(10*time4(i)+1);
        Ycharge(1,kstart:kend)=Ycharge(1,kstart:kend)+1;
     end
 end
 temp=Ycharge(1:241)+Ycharge(241:481);
 x=0:0.1:24;
 xx=0:0.05:24;
 tempp = interp1(x,temp,xx,'linear'); %现性插值
Pwuxu=tempp(1:5:481)*Pbiao;%充电功率为15kW
price=zeros(1,96);
price(1,18*4:22*4)=0.98;
price(1,8*4:17*4)=0.74;
price(1,23:24)=0.74;
price(1,1:7*4)=0.49;

  %=========================================================================
 %解有序充电模型
  deltaT=25/60;%15min折算成小时(根据电网数据采集)
 cost=0;%购电电价
 S=zeros(Ntest,96);
 %充电开始时间折算成一天的96点时段形式;一个小时分成的四个时刻
 J1=zeros(1,Ntest);
 J2=zeros(1,Ntest);
 J3=zeros(1,Ntest);
 J4=zeros(1,Ntest);
 for temp=1:Ntest
    J1(temp) =round(4*time1(temp)+1);
    J2(temp) =round(4*time2(temp)+1);
    J3(temp) =round(4*time3(temp)+1);
    J4(temp) =round(4*time4(temp)+1);
 end
 %是否充电记录数组 1表示充电
 yesfirst=zeros(1,Ntest);  %家里充
 yessec=zeros(1,Ntest);  %单位充
%S(ij)赋初值 也就是无序充电初值 
 for i=1:Ntest
    %到达单位后的充电情况
   if(J2(i)-J1(i)~=0)
       yesfirst(1,i)=1;
       jstart=J1(i);
       jend=J2(i);
       for temp=jstart:jend
           S(i,temp)=1;  %开关机状态
       end
   end
   %下班后充电情况
     if(J4(i)-J3(i)~=0)
       yessec(1,i)=1;
       jstart=J3(i);
       jend=J4(i);
       for temp=jstart:jend
           S(i,temp)=1;
       end
     end
 end
 
 P_mft=50870;%最大允许负荷5087kW
 cost_wuxu=0;
 for i=1:Ntest
     for j=1:96
         cost_wuxu=cost_wuxu+Pbiao*S(i,j)*deltaT*price(j);%%充电单位功率乘以充电时间再乘以电价
     end
 end
 
 T1=round(timework*4+1);
 T2=round(timerest*4+1);
 T3=round(timehome*4+1);
 S_yx=zeros(Ntest,96);
  %SS=S; 
  lambda=0.1*ones(1,96);%拉格朗日乘子初值
  v=1;
  obj=10000000000000000;%初值足够大
  jingdu=0.1;
  a=1;
  b=0.1;
  die=100;
  
  while((v<4)&&(die>jingdu))
      
    L=zeros(1,Ntest);
    x=zeros(1,96); 
    SS=zeros(Ntest,96);
    %执行智能充电单元
    run('ZN.m');  %经济性已经求出
    myk=1/(a+b*v);
    temp=50870*ones(1,96); %最大充点值
    mybsload=bsload(1,1:96);
    myh=mybsload+Pcharge*sum(S_yx)-temp; %波动值
    Tlambda=lambda;
    lambda=lambda+myk*myh/norm(myh);
    die=norm(lambda-Tlambda,2)/norm(Tlambda);
     v=v+1;
  end
  
  PSS=zeros(1,97);
  PSS(1,1:96)=sum(SS)*Pbiao./4; 
  PSS(1,97)=PSS(1,1);
  Evload=zeros(1,24);
 for t=1:24
 Evload(1,t)=sum(PSS(1,(t-1)*4+1:4*t));
 end
  
feiyong= sum(PSS(1,1:96).*price);
  if flag==1
           figure;
%=========================================================================
%原电网基础负荷
%  bsload=1.5*xlsread('baseload',1,'B2:CT2');
 Swuxu=bsload+Pwuxu;
 xt=0:0.25:24;
 plot(xt,bsload,xt,Swuxu);
 %plot(xt,Pwuxu);
 legend('电网原负荷','叠加无序充电负荷后');
 xlabel('时间/h');
 ylabel('负荷/kW');
 Syouxu=bsload+PSS;
  xt=0:0.25:24;
  plot(xt,bsload,xt,Swuxu,'r:',xt,Syouxu,'g-.','LineWidth',1.5);
  legend('电网原负荷','叠加无序充电负荷后','叠加有序充电负荷后');
  xlabel('时间/h');
  ylabel('负荷/kW');
  title('bus')
  end
Evload=PSS;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]程杉,王贤宁,冯毅煁.电动汽车充电站有序充电调度的分散式优化[J].电力系统自动化,2018,42(01):39-46.

[2]王贤宁.电动汽车充电站的分散式优化调度研究及仿真平台设计[D].三峡大学,2018.

[3]吴甜恬.计及多种不确定因素的有源配电网运行风险评估[D].东南大学,2019.DOI:10.27014/d.cnki.gdnau.2019.000830. 

[4]杜纤.考虑电动汽车随机性的主动配电网优化调度研究[D].贵州大学,2022.DOI:10.27047/d.cnki.ggudu.2022.002670.

[4]诸晓骏.考虑电动汽车有序充电的主动配电网源网荷优化调度研究[D].东南大学,2016.

🌈4 Matlab代码实现

  • 31
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值