【代码分享】基于蒙特卡洛抽样的电动汽车充电负荷计算

程序名称:基于蒙特卡洛抽样的电动汽车充电负荷计算

实现平台:matlab

代码简介:代码主要主要研究的的是大规模电动汽车的蒙特卡洛模拟,具体包括,首先抽样生成充电功率、电池容量以及电动汽车起始充电时间以及每日行使里程的概率密度分布,在此基础上,进一步计算基于蒙特卡洛模拟法的电动汽车充放电负荷的计算,每一部分的代码都在分块的子文件夹里,代码非常清晰,思路也很明朗,非常好懂,质量很高!代码注释详实,适合参考学习,出图效果非常棒,程序非常精品! 附带参考文献。

参考文献:《主动配电网多源协同运行优化研究_乔珊》第3.2节,完全复现

代码获取方式:【代码分享】基于蒙特卡洛抽样的电动汽车充电负荷计算

【转发收藏】2024年电力系统方向最新研究热点总结/征稿专辑(1)

【代码分享/新年折扣】部分代码八折优惠,名额有限,先到先得

【视角】虚拟电厂对新型电力系统的建设有什么作用?

【视角】如果把油车全部改成电车,对电网会带来怎样的影响?

近期推文汇总/电力系统预测与优化方向论文推荐与matlab代码分享

【转发收藏】优化调度模型使用Gurobi 加速混合整数规划问题求解速度的方法

专题推荐论文推荐代码分享(点击即可跳转)

运行结果展示

% clc
% clear

%按照流程图进行蒙特卡洛的电车负荷计算
%先是初始化,该配电网区域的电车日出行总数
N_EV = 2000;

%% 
%利用蒙特卡洛方法生成多车行驶里程
km;
%首先,调用函数km
%生成   对数正态分布去生成日行驶里程
for i = 1:N_EV
    p_km = rand();
    A=find(Fs_km-p_km>0 );    
    KM(i) = A(1);     
end
figure(3)
plot(KM,'*');
title('蒙特卡洛生成多电车当日行驶里程');
xlabel( '电车序号');
ylabel( '当日行驶里程(km)');

%根据各车的行驶里程除以7.5计算出各自所需要的充电量kwh
W = KM / 7.5;
figure(4)
plot(W,'*');
title('蒙特卡洛生成多电车当日行驶后所需充电量');
xlabel( '电车序号');
ylabel( '当日行驶后所需充电量(kWh)');


%根据各车充电量,除以8.5可以得到各车所需要的充电时间。
T = W/8.5;
figure(5)
plot(T,'*');
title('蒙特卡洛生成多电车当日行驶后所需充电时长');
xlabel( '电车序号');
ylabel( '多电车当日行驶后所需充电时长(h)');

%% 
%下面是利用蒙特卡洛法,随机生成各车充电开始时刻
% 几个步骤
% 概率密度得到概率分布
% 随机生成rand()与概率分布比较,利用find得到开始时刻
% 处理24这个数值,当发现位置>= 25时,位置改为x-24,而后各个位置赋值8.5
% 最后是把700量车充电负荷累加,观察总电车负荷曲线趋势

ChargeStartTime;     
%生成   对数正态分布去生成开始充电的时间
for i = 1:N_EV
    p_C = rand();
    B=find(Fs_C-p_C >0 );    
    TC(i) = B(1);     
end
figure(8)
plot(TC,'*');
title('蒙特卡洛生成多电车充电开始时刻');
xlabel( '电车序号');
ylabel( '充电开始时刻');


%%
%下面将开始时刻,与充电时长-1叠加,得到的是未修正的充电开始结束时刻位置
TC_Start = TC;
TC_End   = ceil( TC + T -1 ) ;
%先给充电功率赋初值
 P_Charge   =  zeros( N_EV , 48 ) ;
 P_Charge_End  = ( T - floor( T) )*8.5 ;   %最后一个时刻的功率比8.5小
 for i =1 : N_EV
      P_Charge(i,TC_Start(i): TC_End(i)-1 ) = 8.5;
      P_Charge(i, TC_End(i) ) = P_Charge_End(i);     
 end

 
 P_Charge_EV = P_Charge(:,1:24 );
 P_Charge_EV = P_Charge_EV + P_Charge(:,25:48 );
 P_Charge_EV_Sum = sum(  P_Charge_EV ,1);
 figure(9)
 plot(P_Charge_EV_Sum);
 title('电车充电总功率');
 xlabel( '时刻');
 ylabel( '电车充电总功率');

%   D=P_Charge_EV_Sum;
% DD=P_Charge_EV_Sum;
 DDD=P_Charge_EV_Sum;


%  figure(10)
%  plot(D);
%  hold  on
%  plot(DD);
%  hold  on
%  plot(DDD);
%  title('电车充电总功率');
%  xlabel( '时刻');
%  ylabel( '电车充电总功率');

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值