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

news2024/11/17 23:40:20

       采用蒙特卡洛模拟法,对家用电动汽车充电负荷进行预测,电动汽车分为快、中、慢三种充电功率,且分为一天一充、一天两充、一天三充三种类型。全部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


运行结果:

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

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

相关文章

【征服redis14】认真理解一致性Hash与Redis的三种集群

前面我们介绍了主从复制的方式和sentinel方式,这里我们看第三种模式-Cluster方式。 目录 1.前两种集群模式的特征与不足 2.Cluster模式 2.1 Cluster模式原理 2.2 数据分片与槽位 2.3 Cluster模式配置和实现 3.一致性Hash 3.1 哈希后取模 3.2 一致性Hash算法…

探索未知:量子计算机的崛起

探索未知:量子计算机的崛起 Exploring the Unknown: The Rise of Quantum Computing 在2024年1月6日,中国安徽省量子计算工程研究中心和量子计算芯片安徽省重点实验室宣布,中国第三代自主超导量子计算机“本源悟空”正式上线运行。搭载72位自…

爬虫js逆向分析——x平台(实现)

爬虫js逆向分析——x平台(实现) (仅供学习,本案例只是分析流程没有账号)网址:https://xuexi.chinabett.com/ 1.分析请求包格式 打开控制台,并勾选保存日志,然后点击登录看发送了什…

W3School离线手册(2017.03.11版)

点击下载 W3School离线手册(2017.03.11版)

Miniconda安装及使用

B站课程 下载地址 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 1.为什么会诞生Python虚拟环境管理工具 Python 应用经常需要使用一些包第三…

C++ 关于静态成员对象、函数学习整理:

类的静态成员为类创建的所有对象所共有的成员,不单独属于某一对象,而属于整个类,而静态成员分为静态成员变量、静态成员函数。 静态成员变量(静态数据成员): 引入及解决问题的优势: 类创建了…

pytorch与tensorflow如何选择?

目录 1.动态图和静态图1.1 tensorflow是静态图1.2 pytorch动态图 2. 易用性3. 编程语言4. 性能和扩展性5. 社区支持和生态系统 1.动态图和静态图 1.1 tensorflow是静态图 如上图: 定义计算图(公式,包括定义变量x,y ,zx*y)给公式…

Shiro实战详解(3)

Shiro实战详解(3) 04 Springboot集成Shiro1、技术栈2、数据库设计3、注解方式鉴权 05 实现分布式会话SessionManager1、会话的问题2、分布式会话实现思路3、实现步骤:1.创建RedisSessionDao extends AbstractSessionDAO2.配置ShiroConfig 04 …

BGP路由协议通告原则

1仅将自己最优的路由发给BGP邻居 一般情况下,如果BGP Speaker学到去往同一网段的路由多于一条时,只会选择一条最优的路由给自己使用,即用来发布给邻居,同时上送给IP路由表。但是,由于路由器也会选择最优的路由给自己使用,所以BGP Speaker本身选择的最优的路由也不一定被…

有关Quick BI中Case子句中多次使用lod函数返回空值问题分析

一、Quick BI中的lod_ include函数 lod_ include {维度1[,维度2]...:聚合表达式[:过滤条件]} 作用:将表达式中的维度一起作为分组依据进行订算。其中, 1) 维度1[,维度2]... :声明维度,指定聚合表达式要连接到的一个或多个维…

加载服务端发送的模型文件_unity开发进阶

加载服务端发送的模型文件 前言一、服务端搭建二、unity请求文件三、加载模型结语 前言 之前我们学习制作的都是离线状态下的东西,今天我们学习制作一个小demo。 内容就是我们用unity请求后台,接受后台发送过来的模型,然后将模型加载到场景中…

面试题-【消息队列】

消息队列 问题1 如何进行消息队列的技术选型优点解耦 (pub/sub模型)异步(异步接口性能优化)削峰 使用消息队列的缺点几种消息队列的特性 问题2 引入消息队列之后该如何保证其高可用性RabbitMQ的高可用kafka高可用 问题3 在消息队列…

使用MMYOLO中yolov8训练自己VOC数据集实战

概述 MMYOLO是商汤公司基于PyTorch框架和YOLO系列算法开源的工具箱 - 目前支持的任务 目标检测旋转框目标检测 - 支持的算法 YOLOv5YOLOv6YOLOv7YOLOv8YOLOXRTMDetRTMDet-Rotated - 支持的数据集 COCO Dataset VOC Dataset CrowdHuman Dataset DOTA 1.0 Dataset 安装…

SpringBoot集成mybatis时idea控制台中文乱码问题解决

在application.yml中配置好映射文件打印数据库日志文件时,控制台出现乱码的情况解决如下 问题 在执行查询操作的时候,查询时可以查看是没有问题的,但是控制台乱码了 解决 在File-Setting-Editor-File Encodings中设置如图所示就可以了 现在…

【Web前端实操15】利用Grid布局完成九宫格

相关知识点: 创建多列 column-count 属性指定了需要分割的列数 列与列之间的间隙 column-gap 属性指定了列与列间的间隙 列边框 column-rule-style 属性指定了列与列间的边框样式 column-rule-width 属性指定了两列的边框厚度 column-rule-color 属性指定了…

解读《鸿蒙·NEXT星空版》华为注资70亿,将每月开发岗增涨10万+

​1月18日,鸿蒙生态千帆启航仪式正式开启。华为余承东说道:鸿蒙生态大势已定,满天星光,终汇成璀璨星河。 HarmonyOS NEXT鸿蒙星河版面向开发者开放申请。星河版将实现原生精致、原生易用、原生流畅、原生安全、原生智能、原生互联…

基于 Docker 搭建 Uptime-Kuma 一个极简风的应用监控

GitHub:https://github.com/louislam/uptime-kuma 一、uptime-kuma 介绍 Demo:https://uptime.wuhanjiayou.cn/ uptime-kuma 是一款开源的监控工具, 支持 TCP / PING / HTTP 等多种监控方式,可监测网站,数据库,Docker…

0125-2-Vue深入学习1—mustache模板引擎原理

[mustache] 是 “胡子”的意思&#xff0c;因为它的嵌入标记 {{ }} 旋转过来很像[胡子]&#xff0c;Vue中的 {{ }} 语法也引用了mustache&#xff0c;这也是我深入学习的目的。 1、原始js方式使 数据 变为视图 <ul id"list"></ul><script>var arr …

01-echarts如何绘制三维折线图

echarts如何绘制三维折线图 一、相关依赖包1、下载依赖2、引入依赖 二、创建图表盒子1、创建盒子2、定义数据3、编写方法1、初始化盒子2、设置配置项3、修改数据格式4、设置颜色数组4、设置name数组5、设置线三维和点三维6、添加配置项7、设置图表自适应 4、调用方法 三、整体代…

Oracle DG环境下的秘钥管理

今天有朋友问到1&#xff09;DG环境下的秘钥管理需要注意什么&#xff0c;2&#xff09;秘钥管理对DG的日志同步有影响吗&#xff1f; 对于2&#xff09;的回答是明确的&#xff0c;没有影响。秘钥的管理和DG的redo log shipping完全是两套机制。在最新版的Oracle Key Vault常…