目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
电动汽车充电负荷的计算是电动汽车规划的关键步骤之一。蒙特卡洛模拟法是一种基于概率的数学方法,可以用来模拟电动汽车充电负荷的变化情况。这种方法通过大量的随机抽样,对电动汽车的充电行为进行模拟,从而得到充电负荷的概率分布。
在蒙特卡洛模拟法中,我们需要考虑多个因素,包括电动汽车的数量、充电设施的数量、充电时间、充电功率等。这些因素都会对电动汽车的充电负荷产生影响。我们可以通过随机抽样的方式,模拟这些因素的变化情况,从而得到充电负荷的概率分布。
具体来说,我们可以先设定一些参数,如电动汽车的数量、充电设施的数量、充电时间等,然后根据这些参数进行随机抽样。在每个抽样点上,我们可以计算充电负荷的大小,然后统计各个负荷值出现的次数。最后,我们可以通过概率统计的方法,计算出各个负荷值出现的概率,从而得到充电负荷的概率分布。
通过蒙特卡洛模拟法,我们可以更加准确地预测电动汽车的充电负荷,从而为电动汽车的规划提供更加可靠的数据支持。同时,这种方法还可以用来评估各种充电策略的效果,为充电设施的建设和运营提供参考。
📚2 运行结果
主函数部分代码:
function output = MCarlo(mcinput) ldc= mcinput.LDC; sample_year = mcinput.sampleyr; generation_data= mcinput.gdata; lgt = length(ldc); generator_MegaWatts= generation_data(:,1); generator_number= generation_data(:,2); mean_time_to_failure= generation_data(:,3); mean_time_to_repair= generation_data(:,4); gencapin=0; nf= length(generator_MegaWatts); for i= 1:nf gencapin= gencapin + generator_MegaWatts(i,1)* generator_number(i,1); end disp([ ' Installed generation capacity : ' num2str(gencapin)]); jjj = (1:length(ldc))'; number_of_possible_scenarios = length(generation_data(:,1)); %% LOLE_yearly = zeros(1,sample_year); EENS_yearly = zeros(1,sample_year); for year = 1:sample_year u = jjj; for a= 1:number_of_possible_scenarios for b= 1:generator_number(a) t1 = 1; while (1) tnext = -mean_time_to_failure(a)*log(rand); tnext = ceil(tnext); t2 = t1 + tnext; if t2 < lgt mw(t1:t2) = generator_MegaWatts(a); else t2 = lgt; mw(t1:t2) = generator_MegaWatts(a); end t1 = t2; tnext1 = -mean_time_to_repair(a)*log(rand); tnext1 = ceil(tnext1); if t1>= lgt break; else t2 = t1 + tnext1; if t2 < lgt mw(t1:t2) = 0; t1 = t2; else t2 = lgt; mw(t1:t2) = 0; t1 = t2; end end end u= [u,mw']; end end MWoutput =u; MWoutput(:,1)=[]; sumofallunits = sum(MWoutput,2); margin = sumofallunits - ldc; r = length(find(margin<0)); q = sum(margin(find(margin<0))); LOLE = r; EENS =abs(q); %disp(['Year: ' num2str(hh) ' LOLE : ' num2str(LOLE) ' hrs/year, and EENS : ' num2str(EENS) ' kWh/year.' ]); LOLE_yearly(1,year) = LOLE; EENS_yearly(1,year) = EENS; end LOLE_final = sum(LOLE_yearly) / sample_year; EENS_final = sum(EENS_yearly) / sample_year; LOLE_cm = cumsum(LOLE_yearly); EENS_cm = cumsum(EENS_yearly); length_L = length(LOLE_yearly); LOLE_C = LOLE_cm ./ [1:length_L]; EENS_C = EENS_cm ./ [1:length_L]; figure(1) plot(LOLE_C) title('Loss Of Load Expectation hrs/year') axis([1 length_L 0 max(LOLE_C)]) ylabel('LOLE') xlabel('Sample size(Number of years') figure(2) plot(EENS_C) title('Expected Energy Not Supplied kWh/year') axis([1 length_L 0 max(EENS_C)]) ylabel('EENS') xlabel('Sample size(Number of years)') figure(3) % frequency(years)vs number of days of trouble histogram(LOLE_yearly) output.LOLE = LOLE_final; output.EENS = EENS_final; output.LOLEYr = LOLE_yearly; end
🎉3 参考文献
[1]庞培川,曾成,杨彪等.蒙特卡洛模拟法计算电动汽车充电负荷[J].通信电源技术,2016,33(01):155-158.
部分理论引用网络文献,若有侵权联系博主删除。