基于蒙特卡洛模拟的家用电动汽车充电负荷预测(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


运行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端开发WebStorm

WebStorm是一款功能强大的JavaScript集成开发环境,凭借智能代码补全、实时分析和代码重构、集成版本控制、强大的调试和测试工具、实时预览和集成前端工具以及自定义配置和插件支持等功能,成为开发者首选的利器。 前端开发WebStorm WebStorm是一款功能强…

使用POI生成word文档的table表格

文章目录 使用POI生成word文档的table表格1. 引入maven依赖2. 生成table的两种方式介绍2.1 生成一行一列的table2.2 生成固定行列的table2.3 table合并列2.4 创建多个table存在的问题 使用POI生成word文档的table表格 1. 引入maven依赖 <dependency><groupId>org.…

【QT】MDI应用程序设计

目录 1 MDI简介 2 文档窗口类QFormDoc的设计 3 MDI主窗口设计与子窗口的使用 3.1 主窗口界面设计 3.2 MDI子窗口的创建与加入 3.3 QMdiArea常用功能函数 3.4 MDI的信号 1 MDI简介 传统的应用程序设计中有多文档界面&#xff08;Multi-documentInterface&#xff0c;MDI…

Spring源码学习-Spring流程概述(一)

Spring启动的流程 public class Test {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext("applicationContext.xml");Student bean context.getBean(Student.class);context.close();} }调用…

php低版本(7.4)配置过程中遇到的问题及基本解决手段

目前php不支持较低版本的安装&#xff0c;如果安装低版本必须借助第三方库shivammathur //将第三方仓库加入brewbrew tap shivammathur/php //安装PHPbrew install shivammathur/php/php7.4 可能出现的问题 像这样突然中止然后报错&#xff0c;一般是网络问题&#xff0c;或…

JOSEF约瑟 漏电继电器 JHOK-ZBG1 φ25mm AC220V 30-500ma 1S

系列型号 JHOK-ZBG1一体式漏电&#xff08;剩余&#xff09;继电器 JHOK-ZBG2一体式漏电&#xff08;剩余&#xff09;继电器 JHOK-ZBG1漏电继电器原为分体式固定式安装&#xff0c;为适应现行安装场合需要&#xff0c;上海约瑟继电器厂在产品原JHOK-ZBG漏电继电器基础上进行产…

Python中元祖的用法

元祖tuple(,) 元祖就是不可变的列表&#xff0c;元祖用()表示,元素与元素之间用逗号隔开,数据类型没有限制。 tu (科比,詹姆斯,乔丹) tu tuple(123) 小括号中有一个元素,有逗号就是元祖,没有就是它本身。 空的小括号就是元祖 索引和切片与列表和字符串相同 不可变指的是,…

Centos使用Docker搭建自己的Gitlab社区版16.8.0-ce.0(设置汉化 修改密码 设置SSH秘钥 添加拉取命令端口号 备份至网盘和恢复)

根据我的经验 部署Gitlab&#xff08;社区版&#xff09; 至少需要2核4g的服务器 带宽3~4M 1. 在自己电脑上安装终端&#xff1a;宝塔ssl终端 或者 FinalShell&#xff0c;根据喜好安装即可 http://www.hostbuf.com/t/988.html http://www.hostbuf.com/downloads/finalshell_w…

什么品牌洗地机最好?专业旗舰级洗地机推荐

作为一个打工族&#xff0c;很能理解大家对日常清洁繁琐的烦恼&#xff0c;尤其是在忙碌工作后难以有力气打扫卫生。这时候&#xff0c;洗地机就是解决问题的利器了。它不仅方便轻松&#xff0c;还能有效消菌杀毒&#xff0c;助力深度清洁。若你正在为选择哪款洗地机而烦恼&…

实用VBA:17.大量word文件中的文本内容进行批量替换

1.需求场景 在工作中可能会遇到需要对大量word文件中的文字内容进行批量替换的情况。相比excel的批量处理&#xff0c;个人感觉word文档中由于包含大量样式信息&#xff0c;批处理时总感觉有顾虑。一者担心影响了文档的格式&#xff0c;误修改了文档的样式&#xff0c;那后果……

计算机网络-数据通信基础知识(数据通信模型 相关术语 单工/半双工/全双工 串行/并行 同步/异步 码元 数据传输速率 带宽)

文章目录 典型的数据通信模型数据通信的相关术语设计数据通信系统要考虑的三个问题单工/半双工/全双工 串行/并行同步/异步小结码元数据传输速率的两种表示方法思考题1思考题2 带宽 典型的数据通信模型 广域网中有模拟信道&#xff0c;模拟信道能传模拟信号&#xff0c;不能传…

Vue2和Vue3生命周期映射关系及异同

目录 一、Vue2 二、Vue3 三、什么是生命周期 四、Vue2和Vue3生命周期映射关系及异同 一、Vue2 Vue是一种用于构建用户界面的渐进式JavaScript框架。它专注于视图层&#xff0c;采用了组件化的开发方式&#xff0c;使得开发者可以轻松地构建复杂的应用程序。 Vue具有以下特…

alfred自定义谷歌翻译workflow

如果要实现自定义workflow&#xff0c;则必须安装付费版的alfred&#xff0c;囊中羞涩的话可以自行淘宝。自定义步骤如下&#xff1a; 1. 新建空的workflow&#xff0c;填写基本信息 2. 开发python脚本 打开该workflow所在目录&#xff0c;进行下面步骤&#xff1a; 首先安装…

app重新签名之后,teamID会改变吗?

哈喽大家好&#xff0c;我是咕噜美乐蒂&#xff0c;很高兴又见面啦&#xff01; 在iOS和macOS开发中&#xff0c;我们经常需要对应用进行重新签名&#xff0c;以便在发布或测试时更改应用的证书或代理。在重新签名应用程序时&#xff0c;可能会出现teamID变化的情况。本文将探…

安科瑞弧光保护装置助力煤矿高压开关柜的可靠供电

摘要 在煤矿高压开关柜运行中&#xff0c;由于受到多种因素的干扰&#xff0c;中低压母线发生故障的概率较高&#xff0c;在中低压母线装设中又没有设置专门的保护&#xff0c;所以开关柜电弧光短路等问题时有发生&#xff0c;对变压器等设备造成一定的损害。鉴于此&#xff0c…

【高效开发工具系列】Intellj IDEA 2023.3 版本

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Git学习 -- 分支合并、版本修改相关

目录 learn GIT Learn Git Branching merge和rebase的使用 基础命令 版本回退 工作区和暂存区 管理修改 撤销修改 删除修改 learn GIT Learn Git Branching 这是Gitee上的Git学习教程 Learn Git Branching Git Rebase Learn Git Branching 最终的实操 merge和rebase的…

常见的6种软件测试用例设计方法

常见的软件测试用例设计方法&#xff0c;个人认为主要是下面这6种&#xff1a; 流程图法&#xff08;也叫场景法&#xff09;等价类划分法边界值分析判定表正交法错误推测法 这6种常见方法中&#xff0c;我分别按照定义、应用场景、使用步骤、案例讲解这4个部分进行讲解。 所…

thinkphp+mysql高校跳蚤二手市场交易系统vue

商品信息是卖家供应用户必不可少的一个部分。在跳蚤市场发展的整个过程中&#xff0c;商品担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的普通高校网上跳蚤市场&#xff0c;使用Thinkphp5框架&#xff0c;php语言…

Java日期和时间学习记录2

1、Java的LocalDate类当前时间往未来几天和过去时间几天 import java.time.LocalDate;public class Main {public static void main(String[] args) {// 获取当前日期LocalDate currentDate LocalDate.now();System.out.println("当前日期&#xff1a;" currentDa…