基于蒙特卡洛模拟的家用电动汽车充电负荷预测(MATLAB实现)

这篇具有很好参考价值的文章主要介绍了基于蒙特卡洛模拟的家用电动汽车充电负荷预测(MATLAB实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       采用蒙特卡洛模拟法,对家用电动汽车充电负荷进行预测,电动汽车分为快、中、慢三种充电功率,且分为一天一充、一天两充、一天三充三种类型。全部MATLAB代码在下方给出,可以直接运行。

%%%%%%%%%%%%%%%%%%%%%%%%输入电动汽车相关原始数据%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%以下为各种类型电动汽车数量,
%家用电动汽车数量
Nh=958;%输入总数量 
a1=0.6;a2=0.3;a3=0.1;%设置一充二充三充比例;
Nh1=Nh*a1;Nh2=Nh*a2;Nh3=Nh*a3;%计算各数
Nh1=round(Nh1);Nh2=round(Nh2);Nh3=round(Nh3);
%%%以下为各种类型电动汽车电池容量,暂设为唯一确定量;从界面输入
Eh=16;   %BYD F3DM
%%%以下为各种类型电动汽车快、中、慢充电功率,从界面输入
Pch=3.5; %家用慢充,充电功率,220V*16A=3.5kW
Pcm1=7;   %商场、停车场,L-1模式,220V*32A=7kW
Pcm2=12;  %商场、停车场,L-2模式,380V*32A=12kW
Pcm3=24;  %商场、停车场,L-3模式,380V*63A=24kW
%%%以下为家用电动汽车充电随机分布,期望值需要从界面输入
%一天一充
h1=1140;h2=0.6; %充电起始时刻;%起始荷电状态
%一天二充
h3=540;h4=0.6;  %第1次充电起始时刻;%第1次起始荷电状态
h5=1140;h6=0.6; %第2次充电起始时刻;%第2次起始荷电状态
%一天三充
h7=540;h8=0.6;   %第1次充电起始时刻;%第1次起始荷电状态
h9=840;h10=0.6;  %第2次充电起始时刻;%第2次起始荷电状态
h11=1140;h12=0.6;%第3次充电起始时刻;%第3次起始荷电状态
%%标准差,设为已知;
%一天一充
hh1=120;hh2=0.1;%对应的标准差
%一天二充
hh3=60;hh4=0.1;hh5=120;hh6=0.1;
%一天三充
hh7=60;hh8=0.1;hh9=120;hh10=0.1;hh11=120;hh12=0.1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%蒙特卡洛仿真参数输入%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M=100;%monte carol 仿真次数
Bh=zeros(M,1440);%创建存放M次仿真的电动汽车充电功率原始矩阵
T=(1:1440);%时间,以分钟为单位,横坐标
r=0; %monte carol仿真循环时,M矩阵每行下移用
%%%%%%%%%%%%%%%%%%%%%开始进行M次蒙特卡洛仿真%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:1:M
    Ph=zeros(1,1440);%创建用于存放电动汽车充电功率的一维数组,初始值设为0
    r=r+1;
%%%%%%%%以下为家用电动汽车充电功率计算程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%一天一充
 for j=1:1:Nh1                
        Ts=normrnd(h1,hh1);     %随机抽取起始充电时刻,h1为均值,hh1为标准差
        Ts=round(Ts);          %对随机抽取的时间取整    
        Csoc=normrnd(h2,hh2);   %随机抽取起始充电荷电状态
        Tc=(1-Csoc)*Eh*60/(0.9*Pch);%计算充电时长,0.9为充电效率,单位为mins
        Tc=round(Tc);            %对充电时长取整
        k=Ts+Tc;
       if k>1440
           k=k-1440;
           Ph(1:k)=Ph(1:k)+Pch;
           Ph(Ts:1440)=Ph(Ts:1440)+Pch;
       else 
           Ph(Ts:k)=Ph(Ts:k)+Pch;    %充电时段加上充电功率
       end
           Ph(1:1440)=Ph(1:1440);
 end
       for t=1:1:1440        
           Bh(r,t)=Ph(t);%把每次运行Ph的monte carol仿真结果存入B矩阵的行
       end
%%一天二充
 for j=1:1:Nh2                
        %第1次充,停车场
        Ts=normrnd(h3,hh3);     %随机抽取起始充电时刻
        Ts=round(Ts);           %对随机抽取的时间取整    
        Csoc=normrnd(h4,hh4);   %随机抽取起始充电荷电状态
        %Tc=120;                %充电时长限定在2小时
        Tc=(1-Csoc)*Eh*60*0.8/(0.9*Pcm1);%计算充电时长,Pcs为单位充电桩
        Tc=round(Tc);           %对充电时长取整
        k=Ts+Tc;
        Ph(Ts:k)=Ph(Ts:k)+Pcm1;    %充电时段加上充电功率
        %第2次充,家用
        Ts=normrnd(h5,hh5);     %随机抽取起始充电时刻
        Ts=round(Ts);           %对随机抽取的时间取整    
        Csoc=normrnd(h6,hh6);   %随机抽取起始充电荷电状态
        Tc=(1-Csoc)*Eh*60/(0.9*Pch);%计算充电时长,Pcs为单位充电桩
        Tc=round(Tc);           %对充电时长取整
        k=Ts+Tc;
        if k>=1440
            k=k-1440;
            Ph(1:k)=Ph(1:k)+Pch;
            Ph(Ts:1440)=Ph(Ts:1440)+Pch;
        else 
            Ph(Ts:k)=Ph(Ts:k)+Pch;    %充电时段加上充电功率
        end
            Ph(1:1440)=Ph(1:1440);
 end
       for t=1:1:1440        
            Bh(r,t)=Bh(r,t)+Ph(t);%把每次运行Ph的monte carol仿真结果存入B矩阵的行
       end
 %%一天三充
 for j=1:1:Nh3                
        %第1次充,停车场
        Ts=normrnd(h7,hh7);     %随机抽取起始充电时刻
        Ts=round(Ts);           %对随机抽取的时间取整    
        Csoc=normrnd(h8,hh8);   %随机抽取起始充电荷电状态
        %Tc=120;                %充电时长限定在2小时
        Tc=(1-Csoc)*Eh*60*0.8/(0.9*Pcm1);%计算充电时长,Pcm为单位充电桩
        Tc=round(Tc);           %对充电时长取整
        k=Ts+Tc;
        Ph(Ts:k)=Ph(Ts:k)+Pcm1;    %充电时段加上充电功率
        %第2次充,商场
        Ts=normrnd(h9,hh9);     %随机抽取起始充电时刻
        Ts=round(Ts);           %对随机抽取的时间取整    
        Csoc=normrnd(h10,hh10);   %随机抽取起始充电荷电状态
        Tc=(1-Csoc)*Eh*60/(0.9*Pcm1);%计算充电时长,Pcs为单位充电桩
        Tc=round(Tc);           %对充电时长取整
        k=Ts+Tc;
        if k>=1440
            k=k-1440;
            Ph(1:k)=Ph(1:k)+Pcm1;
            Ph(Ts:1440)=Ph(Ts:1440)+Pcm1;
        else 
            Ph(Ts:k)=Ph(Ts:k)+Pcm1;    %充电时段加上充电功率
        end
        %第3次充,回家后
        Ts=normrnd(h11,hh11);     %随机抽取起始充电时刻
        Ts=round(Ts);             %对随机抽取的时间取整    
        Csoc=normrnd(h12,hh12);   %随机抽取起始充电荷电状态
        Tc=(1-Csoc)*Eh*60/(0.9*Pch);%计算充电时长,Pcs为单位充电桩
        Tc=round(Tc);               %对充电时长取整
        k=Ts+Tc;
        if k>=1440
            k=k-1440;
            Ph(1:k)=Ph(1:k)+Pch;
            Ph(Ts:1440)=Ph(Ts:1440)+Pch;
        else 
            Ph(Ts:k)=Ph(Ts:k)+Pch;    %充电时段加上充电功率
        end
            Ph(1:1440)=Ph(1:1440);
 end 
       for t=1:1:1440        
            Bh(r,t)=Bh(r,t)+Ph(t);%把每次运行Ph的monte carol仿真结果存入B矩阵的行
       end

%%%%%%%%以下家用电动汽车充电曲线画图程序部分
figure(1)
Ph1=mean(Bh,1);  %平均充电功率,每一列的平均值
Ph2=std(Bh,0,1); %充电功率的标准差,按列求标准差,且除以N-1
Ph3=Ph1+3*Ph2; %充电功率的概率上线
Ph4=Ph1-3*Ph2; %充电功率的概率下线 
plot((T-1)/60,Ph1,'-b',(T-1)/60,Ph3,'--g',(T-1)/60,Ph4,'-.g')             
legend('期望','功率需求上限','功率需求下限');
grid
set(gca, 'XTick', [0:1:24])
xlabel('时间/H');         
ylabel('充电功率/kW');     
title('电动家用汽车一天内充电功率需求'); 

end


运行结果:

基于蒙特卡洛模拟的家用电动汽车充电负荷预测(MATLAB实现),MATLAB,matlab,电动汽车,负荷预测,蒙特卡洛法文章来源地址https://www.toymoban.com/news/detail-812053.html

到了这里,关于基于蒙特卡洛模拟的家用电动汽车充电负荷预测(MATLAB实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】蒙特卡洛模拟 | PRNG 伪随机数发生器 | 马特赛特旋转算法 | LCG 线性同余算法 | Python Random 模块

          猛戳订阅!  👉 《一起玩蛇》🐍 💭 写在前面: 本篇博客将介绍经典的伪随机数生成算法,我们将  重点讲解 LCG(线性同余发生器) 算法与马特赛特旋转算法,在此基础上顺带介绍 Python 的 random 模块。   本篇博客还带有练习,无聊到喷水的练习,咳咳…… 学完前

    2024年02月04日
    浏览(40)
  • 从0实现基于Alpha zero的中国象棋AI(会分为多个博客,此处讲解蒙特卡洛树搜索)

    ​ 题主对于阿尔法狗的实现原理好奇,加上毕业在即,因此选择中国象棋版的阿尔法zero,阿尔法zero是阿尔法狗的升级版。在完成代码编写的历程中,深刻感受到深度学习环境的恶劣,网络上固然资料繁多,但要么水平不行,不知所云,要么国外课程,门槛过高。因而碰壁良

    2024年02月06日
    浏览(43)
  • 蒙特卡洛算法

    定义 :蒙特卡洛算法是以概率和统计的理论、方法为基础的一种数值计算方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解,故又称随机抽样法或统计实验法。 适用范围 :可以较好的解决多重积分计算、微分方程求解、积

    2024年02月11日
    浏览(59)
  • 蒙特卡洛算法详解

    蒙特卡洛算法是20世纪十大最伟大的算法之一,阿法狗就采用了蒙特卡洛算法。 蒙特卡洛方法也称为 计算机随机模拟方法,它源于世界著名的赌城——摩纳哥的Monte Carlo(蒙特卡洛)。 它是基于对大量事件的统计结果来实现一些确定性问题的计算。其实质就是将问题转化为一个

    2024年02月02日
    浏览(39)
  • 【场景生成与削减】基于蒙特卡洛法场景生成及启发式同步回带削减风电、光伏、负荷研究(Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 相关知

    2023年04月19日
    浏览(28)
  • 蒙特卡洛树搜索(MCTS)详解

    蒙特卡洛树搜索是一种经典的树搜索算法,名镇一时的 AlphaGo 的技术背景就是结合蒙特卡洛树搜索和深度策略价值网络,因此击败了当时的围棋世界冠军。它对于求解这种大规模搜索空间的博弈问题极其有效,因为它的核心思想是 把资源放在更值得搜索的分枝上 ,即 算力集

    2024年01月18日
    浏览(50)
  • 强化学习:蒙特卡洛方法(MC)

       以抛硬币为例,将结果(正面朝上或反面朝上)表示为作为随机变量 X X X ,如果正面朝上则 X = + 1 X=+1 X = + 1 ,如果反面朝上,则 X = − 1 X=-1 X = − 1 ,现在要计算 E [ X ] E[X] E [ X ] 。    我们通常很容易想到直接用定义来计算,因为我们知道正面朝上和反面朝上的概率都是

    2024年02月08日
    浏览(35)
  • 蒙特卡洛方法的数学基础-1

    蒙特卡洛方法的数学基础-1 Bayes 公式 常用分布 Binominal Distribution Poisson Distribution Gaussian Distribution  Exponential Distribution Uniform Distribution 大数定理 均匀概率分布随机地取 N 个数 x i , 函数值之和的算术平均收敛于函数的期望值 算术平均收敛于真值 中心极限定理 n个相互独立分布

    2024年02月07日
    浏览(44)
  • 【机器学习】强化学习(三)蒙特卡洛算法

    策略迭代算法和价值迭代算法为什么可以得到理论上的最优解,在实际问题中使用价值有限? 无模型算法 三、蒙特卡洛算法 蒙特卡洛(Monte Carlo)方法是一种基于样本的强化学习算法,它通过执行和学习代理(也就是我们编程的AI)环境交互的样本路径来学习。它不需要初始知

    2024年01月19日
    浏览(47)
  • 多数问题求解之蒙特卡洛与分治法

    多数问题(Majority Problem)是一个有多种求解方法的经典问题,其问题定义如下: 给定一个大小为 n n n 的数组,找出其中出现次数超过 n / 2 n/2 n /2 的元素 例如:当输入数组为 [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] [5, 3, 5, 2, 3, 5, 5] [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] ,则 5 5 5 是多数(majority)。 本文将

    2024年03月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包