电动汽车蒙特卡洛模拟
蒙特卡洛法(Monte Carlo method),也叫模拟抽样方法,起源于 1940 年美国在第二次世界大战中研究原子弹的“曼哈顿计划”,该方法命名来自于世界赌城,摩纳哥的 Monte Carlo,此方法跟“赌”有很大关系,轮盘赌的样本抽取就可以用蒙特卡洛法。蒙特卡洛法已被广泛应用于物理学、经济学、统计学、金融学等等各个领域。蒙特卡洛法就是使用随机数(或者伪随机数)解决一些计算问题。
其有两方面的应用:一方面是已知某一个问题的概率分布模型,根据此模型通过计算机软件随机生成符合该模型的概率分布变量样本,比如:本文中对电动汽车起始充电时间、日行驶里程等等进行抽样;另一方面是通过统计方法估计出某一问题模型的数学特性,从而得到问题的数值解。比如:经典的对圆周率的计算问题:首先在一个面积为 1 的正方形里作内切圆,圆的半径为 0.5,接着在正方形里生成 m 个随机点,统计出单位圆中的点个数 n,圆周率就可以用公式π = 4 ∗n/m估计出来,
蒙特卡洛计算π 值参考
蒙特卡洛计算π 值
而估计值的准确度与随机点个数有关,个数越多,越接近真实解。
蒙特卡洛法有以下步骤:
建立概率过程;
实现从已知概率分布中进行抽样;
建立各种估计量。
本文对于电动汽车充电负荷预测方面的仿真都是应用蒙特卡洛法来抽样模拟的。
电动汽车的起始充电时刻决定着电动汽车充电负荷的分布规律,不同类型的电动汽车由于其自身用途不同,因此在充电开始时间的选择上有很大差异。
起始充电时刻
对于电动公交车来说,一般公交车最早发车时间是上午 5 点,结束运营时间为 23 点,在公交车运营期间,根据上文分析,需要充两次电。而早上的 6:30 到 9:00 是上班早高峰时期,下午 16:30 到 18:30 是下班的晚高峰时期,为了不耽误乘客的上下班时间,公交车在这段时间发车间隙较短,因此本章假设:电动公交车在高峰时期不充电,为了满足公交车的运营需求,在白天 9:00 到 16:30 期间,电动公交车需要进行充电,由于公交车在运营阶段停车时间不能太长,因此在白天采用快速充电方式进行电能补给;在夜晚电动公交汽车停止运营后,能够充电的时间段为:晚上 23:00 到白天 5:00,停车时间将近 6 个小时,这段时间内采用常规充电方式,一方面可以降低充电成本,另一方面对配电网的安全运行也有一定的作用,晚上电动公交车起始充电时间段为:23:00到 24:00 之间。
对于出租车来说,能够充电的时间段为出租车吃饭、休息时间,能够接受的充电时间长度较短,所以一般采用快速充电方式,根据对北京电动出租车的数据调查 ,电动出租车的休息时间一般为凌晨 2:00 到 4:00,中午 11:00 到 14:00,考虑到出租车的日行驶里程大的特点,电动出租车在这两段时间内都会进行充电。
对于私家车来说,假设其充电起始充电时刻为完成最后一次出行回到家后进行充电。根据 NHTS 2009 的统计数据,电动私家车结束最后一次出行的时间满足正态分布,即充电开始时刻满足正态分布,如下式所示:
其中,根据拟合数据结果,本章中对μ,σ的取值分别为:17.6 与 3.4,下图 为私家车起始充电时刻概率密度分布图。
日行驶里程即电动汽车在一天内的行驶的距离长短,结合电动汽车电池容量大小,就可以得出电动汽车一天内所消耗电量的多少,结合用户设定的预期充电阈值,进而会造成充电时长的不同。由于每种类型的电动汽车的行驶特性不同,因此其日行驶里程也有很大的不同,根据 NHTS 对燃油汽车的分析以及 对于各类电动汽车的行为特性的分析,可以对各类电动汽车的日行驶里程进行拟合分析,得到如下式所示的各类电动汽车的日行驶里程概率函数 。下图为私家车的日行驶里程函数分布。
clc;
close all;
clear all;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.01,200,N);
ff=f1(x1);
s=trapz(x1,ff); %计算整个区间概率密度的积分
ff=ff/s; %归一化概率密度n=0;
while n<Nt=rand(1)*200; %生成[0,200]均匀分布随机数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%% Matlab的hist函数画出频率分布直方图 黑白图
%以上为生成随机数列的过程,以下为统计检验随机数列是否符合分布
num=20; %分num个区间统计
[bin_count,bin_center]=hist(km_rand,num); %计算 num个等间距 bin 的每一个中有多少个数字。返回 bin 计数和 bin 中心。
dc=200/num; %区间宽度大小,计算宽度
bin_count=bin_count/N/dc; %根据统计结果计算概率密度figure(2);
hist(km_rand,num);%获取用于创建直方图的补片对象的句柄。
h = findobj(gca,'Type','patch');
%将已绘制条形的面颜色设置为 RGB 三元值 [0 0 0]。将边颜色设置为白色。h.FaceColor = [0 0 0];
h.EdgeColor = 'w';
总代码
代码地址