基于蒙特卡洛法的规模化电动车有序充放电及负荷预测(PythonMatlab实现)

news2024/9/22 13:41:09

 💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🎉作者研究:🏅🏅🏅主要研究方向是电力系统和智能算法、机器学习和深度学习。目前熟悉python网页爬虫、机器学习、群智能算法、深度学习的相关内容。希望将计算机和电网有效结合!⭐️⭐️⭐️

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

 0 概述

1 蒙特卡洛模拟方法介绍

2 规模化电动汽车充电负荷预测计算方法

3 流程图

4 运行结果

 5 结果分析

6 参考文献

7 Matlab代码和Python代码


 0 概述

本文首先介绍蒙特卡洛模拟方法,再结合蒙特卡洛模拟方法、电动汽车充电负荷的影响因素和行驶数据及参数,确立基于蒙特卡洛法的规模化电动汽车充电负荷预测计算方法。根据北京市各用途的电动汽车未来保有量预测数据,对北京市各用途的电动汽车进行负荷预测,得到负荷曲线,并研究负荷曲线和对电网的影响结果。

1 蒙特卡洛模拟方法介绍

    计算机模拟中的蒙特卡洛法也被称为随机抽样技术或统计检验方法,该方法最重要的特点是它是一种基于概率统计理论的方法。随着科学技术的发展和电子计算机的发明,蒙特卡洛法以其描述物理发展特点和物理实验过程的优点,在各个领域得到了广泛的应用。
蒙特卡洛法将目前所解决的问题当作是一种随机事件的概率,也可以将其看作是随机事件的期望值。按照某种实验的方式,通过某随机事件的出现频率来计算该事件的概率,或者是求得其数字特征,将实验所得的结论作为问题的解。采用蒙特卡洛法,在进行模拟计算时一般按照以下步骤进行,若所需解决的问题存在随机性特征,则就能将这个概率过程更加准确的描述和模拟,若问题并不具备随机性,反而是一种确定性问题,就必须认为建立相应的概率过程,而某些相关参量恰好就是该问题的解,整个过程就是将某问题的确定性改造为随机性。
   在建立这种概率模型之后,可将不同的概率模型视为有不同类型的概率分布组成,由此就可获得己知概率分布的随机变量,如此就能成为可以进行蒙特卡罗方法模拟实验的主要方式,所以这种方法也是一种随机抽样。蒙特卡罗模拟的实现便是在已知概率分布所导致的随机数基础上进行的。
一般在建立这种概率模型后可以从中抽样,也就是实现模拟实验,在此之后还应当将其中某个随机变量确定下来,即所需解决问题的解,被称为无偏估计。通过获得多种估计量,例如方差等,就能够通过模拟方法获得问题的解。
   对于本文的研究,依据不同用途电动汽车影响因素的分布函数和设定参数,采用蒙特卡洛法,对各用途电动汽车的日行驶里程、起始充电时间概率分布参数进行随机抽样,计算初始荷电状态和和充电所需时长,进而预测得出各类型的电动汽车充电负荷曲线,最后通过叠加各用途电动汽车的充电负荷曲线得出总的充电负荷曲线。
 

2 规模化电动汽车充电负荷预测计算方法

根据对各用途电动汽车的充电影响因素进行研究得出了基本参数,包括充电时段起始充电容量分布和起始时间分布等,如表1所示。

 

该表给出了各用途电动汽车在建立充电负荷预测计算时需要的参数:

电动公交车一般进行常规充电,日行驶里程数和起始充电时间服从均匀分布;

电动出租车一般进行快速充电,日行驶里程数服从均匀分布,起始充电时间服从正态随机分布;

电动私家车进行常规充电和快速充电两种补给电能方式,日行驶里程数服从指数分布,起始充电时间服从正态随机分布。在常规充电和快速充电时,不同类型电动汽车的充电功率不尽相同,电动公交车的充电功率近似为电动私家车的五倍,电动出租车的充电功率近似为电动私家车的两倍。

经过原理及模型研究,假定各用途电动汽车均处于无序充电的状态,具体的计算方法如下:

(1)根据预测出的北京市各用途电动汽车的保有量,确定电动汽车的市场规模如表2所示。


(2)依据不同用途电动汽车影响因素的分布函数和设定参数,如表1所示,采用蒙特卡洛模拟方法进行仿真,随机抽取日期类型、电动汽车起始充电时间和日行驶里程。
(3)计算车辆的初始荷电状态和充电所需时长。电动汽车动力电池的剩余电量直接关系到电动汽车的充电所需时间。对于电动汽车的充电所需时间,文章运用电动汽车动力电池的荷电状态( state of charge,SOC)来进行计算。假设电池消耗电量与行驶距离成正比,d为已行驶距离,d_{m}为电动模式下最大续航里程。此处假定每种不同用途的电动汽车每公里的耗电量相同,最后一次出行结束时的剩余电量由下式计算所得:【公式比较重要,纯手打】

                 S O C_{1}=\left(S O C_{2}-\frac{d}{d_{m}}\right) \times 100 \%
式中SOC1为完成充电时的电池荷电状态,SOC2为上一次完成充电时的电池荷电状态。

计算电动汽车充电所需时间T,可以通过将电池容量C、起始荷电状态SOC和充电功率Р求
得,具体公式如下:

                 T=\frac{C(1-S O C)}{P}
(4)计算某一种用途电动汽车在第i个充电负荷计算点时的总充电负荷。本文将每天计算为1440分钟,每15分钟计算一次充电负荷,共计96个充电负荷计算点,计算预测北京市各用途的电动汽车充电负荷,得到各用途电动汽车充电负荷。某一种用途电动汽车的充电负荷的预测计算方法如下:

                  t_{1}=t_{2}+T

其中t_{1}表示第n 台某一种用途电动汽车结束充电的时刻,t_{2}表示第n台某种用途电动汽车开始充电的时刻,T表示第n台某种用途电动汽车充电所需时间。某一种用途电动汽车在第 i个充电负荷计算点时的总充电负荷P_{n,i}可由以下方法计算得到
                P_{n, i}=\sum_{1}^{N} P_{t_{i}}

P_{t_{i}}表示第n台电动汽车在第i个充电负荷计算点时的充电负荷,N表示某一种用途电动汽车的保有量。
(5)通过叠加各用途电动汽车的充电负荷得到总的电动汽车充电负荷。第i个充电负荷计算点的总电动汽车充电负荷的计算方式如公式(4-6)所示:

    P_{n, i}=\sum_{1}^{N} P_{t_{i}}P_{i}=\sum_{n c=1}^{N c} P_{n c, i}+\sum_{n t=1}^{N t} P_{n t, i}+\sum_{n b=1}^{N b} P_{n b, i}

式中,Nc,Nt,Nb分别表示在i时刻充电的电动私家车、电动出租车、电动公交车的数量;P_{nc,i},P_{nt,i},P_{nb,i}分别表示在i时刻电动私家车、电动出租车、电动公交车的充电负荷大小。

3 流程图

4 运行结果

部分代码:

%% 私家车负荷预测
for n=1:1:N
    Pt1=zeros(1,1440);  %周一到周日
    for i=1:1:N1
        Ts=unifrnd( 1,7,1,1);
        Ts=round(Ts);
        %% ============工作日情况============
        if(Ts>=1&&Ts<=5) %Mon---Fri
            ds=exprnd(50.00,1,1);  %指数分布X~E (0.020);1/0.02=50[期望E(x)]
            if(ds>=180)
                ds=180;
            end
            if(ds<=0)
                ds=0;
            end
            soc1=1-(ds./dm(1)); %(4-1)
            Ts1=unifrnd(1,1440,1,1);
            %% ============工作日情况快充===========
            if(Ts1>=420&&Ts1<=1080) %时间7:00--18:00
                ts2=unifrnd(420,1080,1,1);  %均匀分布:[420,1080]
                ts2=round(ts2); %对充电时长取整
                ts3=( 1-soc1).*40*60/Ps(2);    %T
                ts3=round(ts3); %对充电时长取整
                k=ts2+ts3;  %(4-3)t1=t2+T
                if k>1440   %如果充电结束时间大于24时
                    k=k-1440;
                    Pt1(1:k)=Pt1(1:k)+Ps(2); %# 清晨充电
                    Pt1(ts2:1440)=Pt1(ts2:1440)+Ps(2); %晚上24时前充电
                else      %如果充电结束时间没有过24时,无需在清晨充电
                    Pt1(ts2:k)=Pt1(ts2:k)+Ps(2);  % 充电时段加上充电功率
                end
                
                %% ============工作日情况慢充===========
            else   %时间18:00--7:00
                ts2=normrnd( 1150,100,1,1);  %N (1150,100^2)
                ts2=round(ts2);
                if(ts2<=1)
                    ts2=1;
                end
                ts1=(1-soc1).*40*60/Ps(1);
                ts1=round(ts1);
                k=ts1+ts2;
                if k>1440
                    k=k-1440;
                    Pt1(1:k)=Pt1(1:k)+Ps(1);
                    Pt1(ts2:1440)=Pt1(ts2:1440)+Ps(1);
                else
                    Pt1(ts2:k)=Pt1(ts2:k)+Ps(1);
                end
            end
        end
        %% =======非工作日情况=========
        if(Ts>=6&&Ts<=7)
            ds=exprnd(55.55,1,1);  %X~E(0.018);1/0.018=55.55
            if (ds>=180)
                ds=180;
            end
            if (ds<=0)
                ds=0;
            end
            soc1=1-ds./dm(1);
            Ts1=unifrnd(1,1440,1,1);
            
            %% ======非工作日情况快充=====
            if(Ts1>=420&&Ts1<=1080)  %时间7:00--18:00
                ts2=unifrnd(420,1080,1,1);  %均匀分布:[420,1080]
                ts2=round(ts2);
                ts3=(1-soc1).*40*60/Ps(2);
                ts3=round(ts3);
                k=ts2+ts3;
                if k>1440
                    k=k-1440;
                    Pt1(1:k)=Ptl(1:k)+Ps(2);
                    Pt1(ts2:1440)=Pt1(ts2:1440)+Ps(2);
                else
                    Pt1(ts2:k)=Pt1(ts2:k)+Ps(2);
                end
                
                %% ======非工作日情况慢充=========
            else   %时间18:00--7:00
                ts2=normrnd(1150,150,1,1);
                ts2=round(ts2);
                if (ts2<=1)
                    ts2=l;
                end
                ts1=(1-soc1).*40*60/Ps(1);
                ts1=round(ts1);
                k=ts1+ts2;
                if k>1440
                    k=k-1440;
                    Pt1(1:k)=Pt1(1:k)+Ps(1);
                    Pt1(ts2:1440)=Pt1(ts2:1440)+Ps(1);
                else
                    Pt1(ts2:k)=Pt1(ts2:k)+Ps(1);
                end
            end
        end
        Pt1(1:1440)=Pt1(1:1440);
    end
    
    %% 公交车负荷预测
    Pt2=zeros(1,1440);
    for i=1:1:N2
        dg=unifrnd(150,200,1,1);  %日行驶里程数
        %% ========上下限限制======
        if(dg>=200)
            dg=200;
        end
        if (dg<-0)
            dg=0;
        end
        soc2=1-(dg./dm(2));
        tg1=(1-soc1).*300*60/Pg;
        tg1=round(tg1);
        tg2=unifrnd(1,1440,1,1);
        tg2=round(tg2);
        kg=tg1+tg2;
        if (kg>1440)
            kg=kg-1440;
            Pt2(1:kg)=Pt2(1:kg)+Pg;
            Pt2(tg2:1440)=Pt2(tg2:1440)+Pg;
        else
            Pt2(tg2:kg)=Pt2(tg2:kg)+Pg;
        end
        Pt2(1:1440)=Pt2(1:1440);
    end
    %% ========结束==========

 5 结果分析


研究分析北京市各用途电动汽车充电负荷曲线,我们发现北京市总充电负荷曲线类似于北京市电动私家车的充电负荷曲线,正是由于电动私家车在总电动汽车保有量中占比最大,对总负荷的影响最大。而电动公交车的充电起始时间较为均匀,因此电动公交车的充电负荷曲线分布较为平均,曲线动荡主要来自不同站点的出发时间和到站时间的不同。电动出租车的充电负荷主要集中在电动出租车的常规充电时间节点上,因此电动出租车的充电负荷曲线波动也处于常规充电时间的节点上。

6 参考文献

[1]郑晶晶,闫志杰,李伟,王伟,彭飞云,董海鹰.基于蒙特卡洛法的电动汽车无序充电对电网的影响分析[J].电气传动自动化,2019,41(05):1-5.

[2]蒋林洳,万伟江,丁霄寅,李涛永,张元星,张晶.一种基于直接蒙特卡洛法的电动汽车充电负荷模型[J].供用电,2018,35(04):20-25+13.DOI:10.19421/j.cnki.1006-6357.2018.04.004.

[3]李冰轩. 基于蒙特卡洛法的规模化电动汽车充电负荷预测研究[D].宁夏大学,2018.

[4]陈鹏,孟庆海,赵彦锦.基于蒙特卡洛法的电动汽车充电负荷计算[J].电气工程学报,2016,11(11):40-46.

7 Matlab代码和Python代码

博客主页:电气辅导帮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刷爆力扣之三个数的最大乘积

刷爆力扣之三个数的最大乘积 HELLO&#xff0c;各位看官大大好&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 今天阿呆继续记录下力扣刷题过程&#xff0c;收录在专栏算法中 &#x1f61c;&#x1f61c;&#x1f61c; 该专栏按照不同类别标签进行刷题&#x…

运维实战100:CDH5.16.2升级至CDH6.3.2

本期来分享一个cdh企业运维实战案例 背景 为适应公司业务发展需求&#xff0c;提高相关大数据组件版本&#xff0c;解决开发中的一些技术问题和代码优化&#xff0c;需要将现有集群CDH版本由5.x版本升级为6.3.x版本&#xff0c;也是为了适配如Flink、Doris等一些计算引擎。由…

ArcGIS Pro从0到1入门实战教程 书籍淘宝线上销售,免费下载数据和视频

网址&#xff1a;https://m.tb.cn/h.USz9rbD?tkcu0Vd2cABAV 购书后五星好评&#xff0c;加下面微信&#xff0c;截图发给我们&#xff1a;送Python电子书&#xff0c;下面是我们的微信 关注翎树文化&#xff0c;获得更多好书信息 翎树文化 翎树文化致力于图书出版|科技文化|视…

leetcode:1203. 项目管理【双topo:组间topo + 组内topo】

目录题目截图题目分析ac code总结题目截图 题目分析 没有第一个条件&#xff0c;就是简单topo排序有了第一个条件&#xff0c;每个小组都需要完全隔开&#xff0c;因此不同小组间也需要一个topo排step1&#xff1a;对于group为-1的自成一组step2&#xff1a;建图&#xff0c;组…

什么是信息摘要?

信息摘要就是原数据通过某个算法生成的一个固定长度的单向Hash散列值&#xff08;PS:常用来生成信息摘要的算法有MD5与SHA算法)。固定长度得意思就是不论原文内容多大&#xff0c;其生成的信息摘要都是固定长度的。单向的意思是过程不可逆&#xff0c;即只能通过原始数据生成Ha…

Mybatis用到的设计模式

虽然我们都知道有26个设计模式&#xff0c;但是大多停留在概念层面&#xff0c;真实开发中很少遇到&#xff0c;Mybatis源码中使用了大量的设计模式&#xff0c;阅读源码并观察设计模式在其中的应用&#xff0c;能够更深入的理解设计模式。 Mybatis至少遇到了以下的设计模式的…

提高组比赛分析(1)

停更n个月&#xff0c;我又来了&#xff01; 今天打了场模拟赛&#xff0c;差点就AK IOI了 废话不多说 正片开始 题目一&#xff1a;#1751. 第 T 个数 Description 给定一个 n(0<n≤10000) 个整数构成的序列&#xff0c;每个数 a[i] 都是小于 210^9 的非负整数 &#x…

[附源码]Python计算机毕业设计SSM家居购物系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

yalmip和cplex安装步骤(Matlab)

&#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;⛳️⛳️⛳️ ​ 目录 1 yalmip和cplex的安装 1.1 yalmip安装 1.2 cplex安装过程 1 yalmip和cplex的安装 链接&#xff1a;https://pan.baidu.com/s/13One78qt1uSz92zNC6Xvlg 提取码&#xff1a;bicr --来…

websocket实践与浅入浅出

websocket实践与浅入浅出websocket与http的区别&#xff1f;websocket的应用场景&#xff1f;websocket通信方式websocket协议结构分布式下IM多端同步的实现方案TIP1. 心跳2. 多端同步3. wss4. otherwebsocket与http的区别&#xff1f; Http&#xff1a;请求与响应的模式&…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园招聘信息管理系统64f99

这个选题的话其实有很多的&#xff0c;就看你自己能接受怎么样的&#xff0c;比如可以做网站类、系统类、小程序类、安卓app、大数据类等等&#xff0c;这个也要看你个人能力和技术问题&#xff0c;如果技术小白或者有一点点基础的话建议选择网站类和系统类的&#xff0c;如果有…

关于NDK

libc_shared.so 在目前ndk的最新版本25.1.8937393中有4个libc_shared.so&#xff0c;用Everything搜索结果如下&#xff1a; 可以看到&#xff0c;大小最小的有4M多。 对于libc库&#xff0c;官方介绍在此&#xff0c;摘取一些片段如下&#xff1a; LLVM 的 libc 是 C 标准库…

[附源码]Python计算机毕业设计Django养生药膳推荐系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Java学习多态之向下转型

目录 语法 注意事项 一、 二、 三、 举例说明 注意事项第二条的解释 总结 向下转型&#xff1a;解决向上转型中不能调用子类特有成员的问题 语法 子类类型 引用名 &#xff08;子类类型&#xff09;父类引用&#xff1b; 注意事项 一、 只能强转父类的引用&#x…

Windows子系统WSL2 (ubuntu安装 docker、nvidia-docker)

文章目录一、准备二、安装WSL2三、安装docker nvidia-docker附录&#xff1a;WSL与linux路径映射一、准备 第一步&#xff1a;【win R】输入winver 检查你的 Windows 版本&#xff0c;验证内部版本是否低于19041, 升级系统选择Dev 渠道 第二步&#xff1a;【控制面板】>…

基于RRT算法的最优动力学路径规划(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 RRT是Steven M. LaValle和James J. Kuffner Jr.提出的一种通过随机构建Space Filling Tree实现对非凸高维空间快速搜索的算法。…

这款台灯,不仅能护眼,还能点读和互动

疫情反复&#xff0c;孩子不能正常返校 天天在家上网课、写作业 长时间用眼引发视疲劳 用眼健康需要格外关注 想要改善孩子的用眼环境 CTWing物联网市场推荐使用 好记星智能学习台灯 国AA级护眼标准&#xff0c;能点读&#xff0c;会说话 这款智能学习台灯好在哪里&…

旅游网站毕业设计,旅游网站网页设计设计源码,旅游网站设计毕业论文

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于web网页的景区景点购票系统&#xff0c;整个网站项目使用了B/S架构&#xff0c;基于python的Django框架下开发&#xff1b;管理员通过后台录入信息、管理信息&#xff0c;设置网站信息&#xff0c;管理会…

186页13万字智慧能源大数据分析平台建设方案

目录 智慧能源大数据分析平台及能源集团数字化平台建设方案 目录 一、相关项目背景 二、需求理解 2.1 需求理解 三、方案设计 3.1 整体方案设计 3.3.1 整体架构 3.3.2 解决方案说明 3.3.3 需求应答 3.2 数据仓库 3.2.1 数据仓库架构 3.2.2 数据仓库产品说明 3.2.3…

高通平台开发系列讲解(AI篇)SNPE工作流程介绍

文章目录 一、转换网络模型二、量化2.1、选择量化或非量化模型2.2、使用离线TensorFlow或Caffe模型2.3、使用非量化DLC初始化SNPE2.4、使用量化DLC初始化SNPE三、准备输入数据四、运行加载网络沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要介绍SNPE模型工作…