一、充电概率分布
代码如下:
us=17.6;ds=3.4; fs1=@(x)1/(ds*(2*pi)^0.5).*exp(-(x-us).^2./(2*ds^2));%us-12~24 fs2=@(x)1/(ds*(2*pi)^0.5).*exp(-(x+24-us).^2./(2*ds^2));%0~us-12 xs1=linspace(0,24,N); %xs_1=xs1(1:47); %xs_2=xs1(48:200); %fs_st=[fs2(xs_1) fs1(xs_2)]; fs_st=fs2(xs1).*(xs1<=us-12)+fs1(xs1).*(xs1>us-12); s_st=trapz(xs1,fs_st); %计算整个区间概率密度的积分 fs_st=fs_st/s_st; %归一化概率密度 n=0; while n<N t=rand(1)*24;%生成[0,30]均匀分布随机数 if t<=us-12 ft_st=fs2(t)/s_st; else ft_st=fs1(t)/s_st; end r=rand(1); %生成[0,1]均匀分布随机数 if r<=ft_st %如果随机数r小于f(t),接纳该t并加入序列a中 n=n+1; ts_rand(n)=t;%随机生成行驶里程 end end num=20; %分20个区间统计 [x2,c]=hist(ts_rand,num); %统计不同区间出现的个数 dc=200/num; %区间大小 x2=x2/N/dc; %根据统计结果计算概率密度
得到结果如下图:
二、日行驶里程
ud=3.2;dd=0.88; u0=0.205; yt=0.9;%效率 cap=30;%容量 avg_v=40;%速度 avg_xh=0.2;%平均耗电量 pcd=5;%充放电功率 N=200; %%%%%%%%%%%%%%%分布特性 f1=@(x)1./(x.*dd*(2*pi).^0.5).*exp(-(log(x)-ud).^2/(2*dd^2)); x1=linspace(0.1,200,N); ff=f1(x1); s=trapz(x1,ff); %计算整个区间概率密度的积分 ff=ff/s; %归一化概率密度 n=0; while n<N t=rand(1)*200;%生成[0,30]均匀分布随机数 f=f1(t)/s; r=rand(1); %生成[0,1]均匀分布随机数 if r<=f %如果随机数r小于f(t),接纳该t并加入序列a中 n=n+1; km_rand(n)=t;%随机生成行驶里程 end end %以上为生成随机数列的过程,以下为统计检验随机数列是否符合分布 num=20; %分20个区间统计 [x2,c]=hist(km_rand,num); %统计不同区间出现的个数 dc=200/num; %区间大小 x2=x2/N/dc; %根据统计结果计算概率密度 figure; %bar(c,x2,1); hold on; %根据统计结果画概率密度直方图 plot(x1,ff,'k','lineWidth',1.5); %hold off; %根据公式画概率密度曲线 title('电动汽车出行距离概率分布'); xlabel('行驶里程(km)'); ylabel('概率密度');
三、无序充电负荷模型
四、蒙特卡洛法分析
通过模拟可以得到如下结果:
完整代码资源链接: