蒙特卡洛模拟法计算电动汽车充电负荷(Matlab代码实现)

     目录

💥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.

部分理论引用网络文献,若有侵权联系博主删除。

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值