(Matlab实现)基于蒙特卡洛模拟的大规模电动车充电模型

 

目录

摘要:

1电动车日行驶里程概率分布:

2.电动车充电起始时间概率分布:

3.大规模电动车充电行为蒙特卡洛建模:

3.1日行驶里程

3.2开始充电时间

3.3耗电量

3.4充电时间

3.5总充电负荷

4.不同规模的电动车的充电负荷曲线对比:

5.仿真程序:


摘要:

电动汽车大规模入网充电时会导致系统内负载峰值拔高的问题,和分布式电源一样,都会对电网的安全稳定运行造成冲击,需要在满足系统运行经济效益最优的同时,尽量降低大量电动汽车入网无序充电对系统造成的不良影响。本文通过蒙特卡洛仿真技术,生成大规模电动车无序充电功率曲线,分析大规模电动车接入对电网造成的影响。

1电动车日行驶里程概率分布:

考虑到目前电动汽车为较新型的交通工具,其样本数量与传统燃油车相比仍较少,本文假设电动汽车用户与普通燃油汽车用户的用车习惯一致,对家用汽车使用行为规律的数据进行处理,得出日行驶里程服从对数正态分布,取均值为3.2,方差为0.88对电动车的日行是里程进行概率描述,具体图像如下:

可以看出,电动车的日行驶里程主要集中在0-80km左右的范围,符合实际情况。

2.电动车充电起始时间概率分布:

电动汽车返回时刻t服从正态分布,取均值为17.6,方差为3.4。具体概率分布表达式如下:

对该概率模型进行采样得到的概率分布图像图下:

从图中可以看出,电动车的主要充电开始时间集中在18点左右,符合实际的情况。

3.大规模电动车充电行为蒙特卡洛建模:

蒙特卡洛的思想如下:

研究过程中假设电动汽车各自的充电行为具有独立性的特征,每台电动汽车的电池容量、日行驶里程、起始充电时刻等都独立,表现为在己知概率分布图中随机分布的形式,因此,可以进行蒙特卡洛随机抽样来抽取每个步骤中的随机数,从而求取单台电动汽车的充电负荷特征,累加得出大规模电动汽车入网充电时的进行无序充电时的总充电负荷曲线。

本文设置电动车台数为1000,对其行驶距离和开始充电时间进行蒙特卡洛模拟,所得结果如下:

3.1日行驶里程

3.2开始充电时间

通过以上两个数值,结合电动车每公里的耗电量,即可计算出电动车需要充电的电量和充电时间。

3.3耗电量

3.4充电时间

3.5总充电负荷

将所有电动车的充电功率情况相加,即可得到所有电动车的总充电负荷曲线:

4.不同规模的电动车的充电负荷曲线对比:

改变程序中电动车的总数量,即可得到不同电动车数量下的充电负荷曲线,从图中可以看出,不同数量的电动车的充电负荷曲线的大致走向都相同。

5.仿真程序:

部分代码:

clc;
clear;
%% 创建电动车基础参数
N = 1000; % 电动车数量
Car.Capcity = 35; % 电动车电池容量
Car.max = 0.9; % 电动车最大荷电容量
Car.min = 0.1; % 电动车最小荷电容量
Car.P = 0.1; % 每公里耗电量
Car.char = 4; % 充电功率/h
%% 电动车日行驶里程概率分布(对数正态分布)
km = Day_Km(N,Car);
%% 起始充电时间概率分布(正态分布)
[time_in,F_in] = Time_IN(N);
%% 蒙特卡洛抽样
[Car_km,Car_in] = MC(N,km,F_in);
%% 充电时间确定
W = Car_km*Car.P; % 耗电量
figure(5)
plot(W,'x');
title('电动车耗电量');
xlabel('电动车编号');
ylabel('电动车耗电量');
T_char = W/Car.char; % 充电时间
figure(6)
plot(T_char,'x');
title('电动车充电时间');
xlabel('电动车编号');
ylabel('电动车充电时间');
%% 生成充电曲线
T_char = round(T_char);
P_char_total = zeros(1,48);
P = zeros(1,48);
for n = 1:N
    start = Car_in(n);
    t = T_char(n);
    P(start:start+t) = Car.char;
    P_char_total = P_char_total+P;
    P = zeros(1,48);
end
P_char_total = P_char_total(1:24)+P_char_total(25:48);
figure(7)
plot(P_char_total);
grid on
title('电动车总充电曲线');
legend('1000辆电动车');
xlabel('时间(h)');
ylabel('功率(kw)');
%% 不同数量的电动车充电曲线对比
load different_number.mat;
figure(8)
plot(PPP(1,:),'k->');
hold on
plot(PPP(2,:),'b-*');
plot(PPP(3,:),'r-o');
hold off
grid on
legend('200辆电动车','500辆电动车','1000辆电动车');
title('电动车总充电曲线');
xlabel('时间(h)');
ylabel('功率(kw)');

猜你喜欢

转载自blog.csdn.net/weixin_61181717/article/details/127964212