1 简介

在现有的电池技术和充电条件下,快换式充电站成为国内纯电动公交最主要的能量补给摸式。针对电池组充电电费过高和增加配电网峰谷差的问题,以及换电站内快换工位和备用电池空闲的情况,在保证车辆正常运营的前提下,以基金项目:国家 863 高技术基金项目(2011AA05A108);中央高校基本科研业务费专项资金资助(2013YJS084)。The National High Technology Research and Development of China (863 Program) (2011AA05A108);Fundamental Research Funds for the Central Universities (2013YJS084). 充电站内全天充电电费最低为目标,建立了充电变功率工况下基于分时电价的换电站经济运行模型,通过遗传智能优化算法合理安排电池组的开始充电时间,降低充电电费,从而实现换电站的经济运行。分别基于北京北土城充电站和上海世博会充电站的实际数据和统计结果进行算例仿真,验证了算法的有效性。结果表明,该算法不仅能降低充电站充电电费,还能降低充电站白天对配电网的负荷压力,补充夜间负荷,减小配电网的峰谷差,在实现充电站经济运行的同时还有助于配电网的经济运行。通过对国内主要大型纯电动公交快换式充电站的建设和后期运营数据的分析,先前已总结了快换式充电站的设计模型,并提出了快换式充电站核心参数的基本配置方法。同时在实际运营数据分析过程中发现,充电站内电池组的充电过程是和车辆回站的时间相关的,主要集中在白天运营时段,快换工位大部分时间处于空闲状态,电池组充满电而闲置的情况也一直存在,这就使得调节电池组的充电时间成为可能。因此,本文在满足车辆正常运营的前提下,以充电站内全天充电电费最低为目标,通过遗传智能优化算法求解出电池组的开始充电时间,合理安排充电,从而实现充电站的经济运行,该运行方式同时有助于配电网的经济运行。​

2 部分代码

clc

clear


%--------------------获取数据-----------------------

PBase=fopen('PBase.txt');                      

Pbase(1,:)=fscanf(PBase,'%g',[1,inf]);       %Pbase    电网基础负荷功率 96个时段

fclose(PBase);  

carnum=100;                                %carnumal 给定接入汽车数量

% carnum0=0.25*carnumal;                        %carnum0  紧急充电汽车数量

% carnum=carnumal-carnum0;                     %carnum   常规充电汽车数量

ET=36;                                       %ET       给定汽车电池容量

ptSOC0=normrnd(0.2,0.05,1,carnum);           %ptSOC0   服从正态分布的电池状态

pch=[7,1.5];                                 %pch      恒功率充电

Pmax=2400;                                   %Pmax     给定电网允许最大功率

tin=normrnd(19,1,1,carnum);                  %tin      各电动汽车接入时间

Te=normrnd(7,0.5,1,carnum);                  %Te       用户设置充电完成时间

timeT=zeros(1,carnum);                       %timeT    各电动汽车充电所需时间


ptSOC=ptSOC0;

for i=1:carnum

    while ptSOC(1,i)<0.9                     %充电功率 SOC<90%

      ptSOC(1,i)=ptSOC(1,i)+0.25*pch(1)/ET;

      timeT(1,i)=timeT(1,i)+0.25;

    end                                      %充电功率 SOC>=90%

    timeT(1,i)=timeT(1,i)+(1-ptSOC(1,i))*ET/pch(2);

end

%--------------------无序充电-----------------------

cartime=carT(carnum,tin,timeT);              %以汽车接入时间作为充电开始时间

a=sum(cartime,2);

Ptotal=zeros(1,96);

for i=1:96

    Ptotal(1,i)=Pbase(i)+pch(1)*a(i);

end

PTotal=fopen('PTotal.txt','wt');

fprintf(PTotal,'%g \n',Ptotal);

fclose(PTotal);

%--------------------紧急充电-----------------------

% tsSOC0=normrnd(0.3,0.05,1,carnum0);          %tsSOC0   服从正态分布的电池状态

% tin0=24.*rand(1,carnum0);                    %tin0     特殊电动汽车接入时间随机分布

% tsSOCe=normrnd(0.8,0.05,1,carnum0);          %tsSOCe   用户设置期望电池状态

% timeT0=zeros(1,carnum0);                     %timeT0   恒功率充电时长

% for i=1:carnum0                      

%       timeT0(1,i)=ET*(tsSOCe(i)-tsSOC0(i))/pch(1);                               

% end

% cartime=carT(carnum0,tin0,timeT0);           %以汽车接入时间作为充电开始时间

% a=sum(cartime,2);

% for i=1:96

%     Pbase(i)=Pbase(i)+pch(1)*a(i);

% end


%------------------遗传算法优化---------------------

maxgen=1000;                                 %maxgen   终止进化代数

sizepop=50;                                  %sizepop  种群规模                                             

pcross=0.8;                                  %pcross   杂交概率

pmutation=0.05;                              %pmutation变异概率

bound=[tin;Te-timeT+24];                     %bound    约束范围

%种群初始化

ton=zeros(1,carnum);                         %ton      各电动汽车充电开始时间

carpop=struct('fitness',zeros(1,sizepop),'chrom',[]);      

for i=1:sizepop                              %carpop   初始种群随机赋值

    a=rand(1,carnum);

    for j=1:carnum

        ton(1,j)=bound(1,j)+a(j)*(bound(2,j)-bound(1,j));

    end

    carpop.chrom(i,:)=ton;                   %chrom    染色体群,即ton集合

    %carpop.fitness(i)=fit1(carnum,ton,timeT,Pbase,pch);

    carpop.fitness(i)=fit2(carnum,ton,timeT,Pbase,pch);

end


%找出当前最优解(适应度最小的染色体)                                                          

[bestfit,bestindex]=min(carpop.fitness);    

bestton=carpop.chrom(bestindex,:);           %bestton  最优充电开始时间   

avgfit=sum(carpop.fitness)/sizepop;          %avgfit   适应度平均值





Ptotal=zeros(1,96);                          %Ptotal   总负荷功率

cartime=carT(carnum,bestton,timeT);

a=sum(cartime,2);

for i=1:96

    Ptotal(1,i)=Pbase(i)+pch(1)*a(i);

end

%--------------------优化结果显示-----------------------

Bestton=fopen('Bestton.txt','wt');

fprintf(Bestton,'%g \n',bestton);

fclose(Bestton);


PT=fopen('PT.txt','wt');

fprintf(PT,'%g \n',Ptotal);

fclose(PT);

figure

plot(y)

xlabel('迭代次数')

ylabel('适应度值')

3 仿真结果

【优化求解】基于遗传算法求解电动汽车充电管理优化问题Matlab代码_正态分布

4 参考文献

[1]林英硕, 厚月春, 周昊. 基于遗传算法的电动汽车充放电优化管理问题求解[J].  2019.

部分理论引用网络文献,若有侵权联系博主删除。

【优化求解】基于遗传算法求解电动汽车充电管理优化问题Matlab代码_优化算法_02