www.pudn.com > EV-charging-load-forecast.rar > EV charging load forecast.m, change:2017-01-17,size:5924b


%%%%%%%%%%%%%%%%%%%%%%%%输入电动汽车相关原始数据%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%以下为各种类型电动汽车数量, 
%家用电动汽车数量 
Nh=958;%输入总数量  
a1=0.6;a2=0.3;a3=0.1;%设置一充二充三充比例; 
Nh1=Nh*a1;Nh2=Nh*a2;Nh3=Nh*a3;%计算各数 
Nh1=round(Nh1);Nh2=round(Nh2);Nh3=round(Nh3); 
%%%以下为各种类型电动汽车电池容量,暂设为唯一确定量;从界面输入 
Eh=16;   %BYD F3DM 
%%%以下为各种类型电动汽车快、中、慢充电功率,从界面输入 
Pch=3.5; %家用慢充,充电功率,220V*16A=3.5kW 
Pcm1=7;   %商场、停车场,L-1模式,220V*32A=7kW 
Pcm2=12;  %商场、停车场,L-2模式,380V*32A=12kW 
Pcm3=24;  %商场、停车场,L-3模式,380V*63A=24kW 
%%%以下为家用电动汽车充电随机分布,期望值需要从界面输入 
%一天一充 
h1=1140;h2=0.6; %充电起始时刻;%起始荷电状态 
%一天二充 
h3=540;h4=0.6;  %第1次充电起始时刻;%第1次起始荷电状态 
h5=1140;h6=0.6; %第2次充电起始时刻;%第2次起始荷电状态 
%一天三充 
h7=540;h8=0.6;   %第1次充电起始时刻;%第1次起始荷电状态 
h9=840;h10=0.6;  %第2次充电起始时刻;%第2次起始荷电状态 
h11=1140;h12=0.6;%第3次充电起始时刻;%第3次起始荷电状态 
%%标准差,设为已知; 
%一天一充 
hh1=120;hh2=0.1; 
%一天二充 
hh3=60;hh4=0.1;hh5=120;hh6=0.1; 
%一天三充 
hh7=60;hh8=0.1;hh9=120;hh10=0.1;hh11=120;hh12=0.1; 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%蒙特卡洛仿真参数输入%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
M=100;%monte carol 仿真次数 
Bh=zeros(M,1440);%创建存放M次仿真的电动汽车充电功率原始矩阵 
T=(1:1440);%时间,以分钟为单位,横坐标 
r=0; %monte carol仿真循环时,M矩阵每行下移用 
%%%%%%%%%%%%%%%%%%%%%开始进行M次蒙特卡洛仿真%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
for i=1:1:M 
    Ph=zeros(1,1440);%创建用于存放电动汽车充电功率的一维数组,初始值设为0 
    r=r+1; 
%%%%%%%%以下为家用电动汽车充电功率计算程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%一天一充 
 for j=1:1:Nh1                 
        Ts=normrnd(h1,hh1);     %随机抽取起始充电时刻 
        Ts=round(Ts);          %对随机抽取的时间取整     
        Csoc=normrnd(h2,hh2);   %随机抽取起始充电荷电状态 
        Tc=(1-Csoc)*Eh*60/(0.9*Pch);%计算充电时长,0.9为充电效率 
        Tc=round(Tc);            %对充电时长取整 
        k=Ts+Tc; 
       if k>1440 
           k=k-1440; 
           Ph(1:k)=Ph(1:k)+Pch; 
           Ph(Ts:1440)=Ph(Ts:1440)+Pch; 
       else  
           Ph(Ts:k)=Ph(Ts:k)+Pch;    %充电时段加上充电功率 
       end 
           Ph(1:1440)=Ph(1:1440); 
 end 
       for t=1:1:1440         
           Bh(r,t)=Ph(t);%把每次运行Ph的monte carol仿真结果存入B矩阵的行 
       end 
%%一天二充 
 for j=1:1:Nh2                 
        %第1次充,停车场 
        Ts=normrnd(h3,hh3);     %随机抽取起始充电时刻 
        Ts=round(Ts);           %对随机抽取的时间取整     
        Csoc=normrnd(h4,hh4);   %随机抽取起始充电荷电状态 
        %Tc=120;                %充电时长限定在2小时 
        Tc=(1-Csoc)*Eh*60*0.8/(0.9*Pcm1);%计算充电时长,Pcs为单位充电桩 
        Tc=round(Tc);           %对充电时长取整 
        k=Ts+Tc; 
        Ph(Ts:k)=Ph(Ts:k)+Pcm1;    %充电时段加上充电功率 
        %第2次充,家用 
        Ts=normrnd(h5,hh5);     %随机抽取起始充电时刻 
        Ts=round(Ts);           %对随机抽取的时间取整     
        Csoc=normrnd(h6,hh6);   %随机抽取起始充电荷电状态 
        Tc=(1-Csoc)*Eh*60/(0.9*Pch);%计算充电时长,Pcs为单位充电桩 
        Tc=round(Tc);           %对充电时长取整 
        k=Ts+Tc; 
        if k>=1440 
            k=k-1440; 
            Ph(1:k)=Ph(1:k)+Pch; 
            Ph(Ts:1440)=Ph(Ts:1440)+Pch; 
        else  
            Ph(Ts:k)=Ph(Ts:k)+Pch;    %充电时段加上充电功率 
        end 
            Ph(1:1440)=Ph(1:1440); 
 end 
       for t=1:1:1440         
            Bh(r,t)=Bh(r,t)+Ph(t);%把每次运行Ph的monte carol仿真结果存入B矩阵的行 
       end 
 %%一天三充 
 for j=1:1:Nh3                 
        %第1次充,停车场 
        Ts=normrnd(h7,hh7);     %随机抽取起始充电时刻 
        Ts=round(Ts);           %对随机抽取的时间取整     
        Csoc=normrnd(h8,hh8);   %随机抽取起始充电荷电状态 
        %Tc=120;                %充电时长限定在2小时 
        Tc=(1-Csoc)*Eh*60*0.8/(0.9*Pcm1);%计算充电时长,Pcm为单位充电桩 
        Tc=round(Tc);           %对充电时长取整 
        k=Ts+Tc; 
        Ph(Ts:k)=Ph(Ts:k)+Pcm1;    %充电时段加上充电功率 
        %第2次充,商场 
        Ts=normrnd(h9,hh9);     %随机抽取起始充电时刻 
        Ts=round(Ts);           %对随机抽取的时间取整     
        Csoc=normrnd(h10,hh10);   %随机抽取起始充电荷电状态 
        Tc=(1-Csoc)*Eh*60/(0.9*Pcm1);%计算充电时长,Pcs为单位充电桩 
        Tc=round(Tc);           %对充电时长取整 
        k=Ts+Tc; 
        if k>=1440 
            k=k-1440; 
            Ph(1:k)=Ph(1:k)+Pcm1; 
            Ph(Ts:1440)=Ph(Ts:1440)+Pcm1; 
        else  
            Ph(Ts:k)=Ph(Ts:k)+Pcm1;    %充电时段加上充电功率 
        end 
        %第3次充,回家后 
        Ts=normrnd(h11,hh11);     %随机抽取起始充电时刻 
        Ts=round(Ts);             %对随机抽取的时间取整     
        Csoc=normrnd(h12,hh12);   %随机抽取起始充电荷电状态 
        Tc=(1-Csoc)*Eh*60/(0.9*Pch);%计算充电时长,Pcs为单位充电桩 
        Tc=round(Tc);               %对充电时长取整 
        k=Ts+Tc; 
        if k>=1440 
            k=k-1440; 
            Ph(1:k)=Ph(1:k)+Pch; 
            Ph(Ts:1440)=Ph(Ts:1440)+Pch; 
        else  
            Ph(Ts:k)=Ph(Ts:k)+Pch;    %充电时段加上充电功率 
        end 
            Ph(1:1440)=Ph(1:1440); 
 end  
       for t=1:1:1440         
            Bh(r,t)=Bh(r,t)+Ph(t);%把每次运行Ph的monte carol仿真结果存入B矩阵的行 
       end 
 
%%%%%%%%以下家用电动汽车充电曲线画图程序部分 
figure(1) 
Ph1=mean(Bh,1);  %平均充电功率 
Ph2=std(Bh,0,1); %充电功率的标准差 
Ph3=Ph1+3*Ph2; %充电功率的概率上线 
Ph4=Ph1-3*Ph2; %充电功率的概率下线  
plot((T-1)/60,Ph1,'-b',(T-1)/60,Ph3,'--g',(T-1)/60,Ph4,'-.g')              
v=legend('期望','功率需求上限','功率需求下限',2); 
grid 
set(gca, 'XTick', [0:1:24]) 
xlabel('时间/H');          
ylabel('充电功率/kW');      
title('电动家用汽车一天内充电功率需求');  
 
end