目录

1 概述

2 蒙特卡洛模拟方法介绍

3 拉格朗日乘子法

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

5 Matlab代码实现

1 概述

电动汽车EV(Electric Vehicle)具有清洁环保、高效节能的优点,不仅能缓解化石能源危机,而且能够有效地减少温室气体的排放。2015年10月,国务院发布加快EV充电基础设施建设的指导意见,指出到2020年充电基础设施能满足500万辆EV充电需求,预计未来几年我国EV的保有量将大幅增长。然而,规模化EV的无序充电会加大电网负荷的峰谷差,并对电力系统的规划、配电网的电能质量和经济运行以及稳定性带来显著的影响,反之.对EV的充电行为进行有序优化控制,充分发挥EV作为分布式储能元件的优势,能够实现削峰填谷、平抑可再生能源出力波动的功能,并为电网提供调峰、调频等辅助服务。本文利用蒙特卡洛模拟法和拉格朗日松弛法模拟出电动汽车负荷曲线,同时求解出无序充电功率曲线,作为有序充电曲线的对比基础。

2 蒙特卡洛模拟方法介绍

计算机模拟中的蒙特卡洛法也被称为随机抽样技术或统计检验方法,该方法最重要的特点是它是一种基于概率统计理论的方法。随着科学技术的发展和电子计算机的发明,蒙特卡洛法以其描述物理发展特点和物理实验过程的优点,在各个领域得到了广泛的应用。

这篇文章有讲解和代码:蒙特卡罗法(随机模拟法)

蒙特卡洛模拟程序结构非常简单,随机数带入公式计算出结果,虽然没有毕竟最优的过程,模拟次数较少时很难得到满意的结果,而蒙特卡罗方法能够真实地模拟实际问题发生过程,故解决问题也比较实际,这也因此在交通运输、机械仿真、物理实验等常见到蒙特卡洛模拟步骤。

蒙特卡洛模拟用法主要是嵌套于仿真模型中,虽然在比赛中不常用,一般在工业生产中,常会遇到拟定几个方案,这时就可以根据不同的模型及规则条件求得结果的分布情况,以评价方案的优劣。

 这篇文章用Matlab实现:整数规划蒙特卡洛模拟(Matlab实现)


3 拉格朗日乘子法

之前在高中就有一直听到拉格朗日,拉格朗日是一个很牛的大佬。在学习SVM的时候,居然也见到了他的身影。让我们了解一下拉格朗日乘子法的具体内容。

 在学习过程中,有时会遇到一些最优化问题。这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值(无论最大最小值都可以转化为最小值),二者均是求解最优化问题的方法不同之处在于应用的情形不同。

一般情况下,最优化问题会碰到下面三种:

无约束条件
等式约束条件
不等式约束条件

基本的拉格朗日乘子法就是求函数在约束条件下的极值的方法。其主要思想是将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。拉格朗日乘子法是在支持向量机为了更好的求解间距的方法。

在求解最优问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法,在有等式约束时使用拉格朗日乘子法,在有不等式约束的时候使用KTT条件。

这个博主这篇文章对拉格朗日乘子法有所总结和应用:

(非线性规划Python)计及动态约束及节能减排环保要求的经济调度


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

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

(1)计算车辆的初始荷电状态和充电所需时长。电动汽车动力电池的剩余电量直接关系到电动汽车的充电所需时间。对于电动汽车的充电所需时间,文章运用电动汽车动力电池的荷电状态( state of charge,SOC)来进行计算。假设电池消耗电量与行驶距离成正比,​为已行驶距离,​为电动模式下最大续航里程。此处假定每种不同用途的电动汽车每公里的耗电量相同,最后一次出行结束时的剩余电量由下式计算所得:


式中SOC1为完成充电时的电池荷电状态,SOC2为上一次完成充电时的电池荷电状态。

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


(2)计算某一种用途电动汽车在第i个充电负荷计算点时的总充电负荷。本文将每天计算为1440分钟,每15分钟计算一次充电负荷,共计96个充电负荷计算点,计算预测北京市各用途的电动汽车充电负荷,得到各用途电动汽车充电负荷。某一种用途电动汽车的充电负荷的预测计算方法如下:

其中​表示第n 台某一种用途电动汽车结束充电的时刻,​表示第n台某种用途电动汽车开始充电的时刻,T表示第n台某种用途电动汽车充电所需时间。某一种用途电动汽车在第 i个充电负荷计算点时的总充电负荷​可由以下方法计算得到

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

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

5 Matlab代码实现

%利用蒙特卡洛模拟法模拟出电动汽车负荷曲线
%同时求解出无序充电功率曲线,作为有序充电曲线的对比基础
clc;clear;
Ntest=100;%仿真程序 车辆数
SOC_end=0.9;
Pbiao=15;%充电功率为15kW
nn=0.9;%充电效率为0.9
Pcharge=Pbiao*nn;%实际充电的功率
Cbattery=30;                     %电池容量
distance=unifrnd(30,80,1,Ntest);     %Ntest辆车 每辆车的单程距离
judge=0.15*distance/Cbattery;            %单程耗电SOCSOC=rand(1,Ntest).*(1-judge)+judge;          %初始SOC......%解有序充电模型%分时电价赋值price=zeros(1,96);for j=1:33-1price(j)=0.365;%谷电价0.365元/kWh endfor j=33:4*8+1-1price(j)=0.869;%峰电价   元/kWh endfor j=4*8+1:4*17+1-1price(j)=0.687;%平电价   元/kWh endfor j=4*17+1:4*21+1-1price(j)=0.869;%峰电价   元/kWh endfor j=4*21+1:4*24+1-1price(j)=0.687;%平电价   元/kWh enddeltaT=15/60;%15min折算成小时cost=0;%购电电价S=zeros(Ntest,96);%充电开始时间折算成96点形式J1=zeros(1,Ntest);J2=zeros(1,Ntest);J3=zeros(1,Ntest);J4=zeros(1,Ntest);for temp=1:NtestJ1(temp) =round(4*time1(temp)+1);J2(temp) =round(4*time2(temp)+1);J3(temp) =round(4*time3(temp)+1);J4(temp) =round(4*time4(temp)+1);end%是否充电记录数组 1表示充电yesfirst=zeros(1,Ntest);yessec=zeros(1,Ntest);
%S(ij)赋初值 也就是无序充电初值 for i=1:Ntest%到达单位后的充电情况if(J2(i)-J1(i)~=0)yesfirst(1,i)=1;jstart=J1(i);jend=J2(i);for temp=jstart:jendS(i,temp)=1;endend.......
lambda=0.1*ones(1,96);%拉格朗日乘子初值v=1;obj=10000000000000000;%初值足够大jingdu=0.1;a=1;b=0.1;die=100;while((v<4)&&(die>jingdu))L=zeros(1,Ntest);x=zeros(1,96); SS=zeros(Ntest,96);%执行智能充电单元run('ZN.m');  myk=1/(a+b*v);temp=5087*ones(1,96);mybsload=bsload(1,1:96);myh=mybsload+Pcharge*sum(S_yx)-temp;Tlambda=lambda;lambda=lambda+myk*myh/norm(myh);die=norm(lambda-Tlambda,2)/norm(Tlambda);v=v+1;endPSS=zeros(1,97);PSS(1,1:96)=sum(SS)*Pbiao;PSS(1,97)=PSS(1,1);Syouxu=bsload+PSS;xt=0:0.25:24;plot(xt,bsload,xt,Swuxu,'r:',xt,Syouxu,'g');legend('电网原负荷','叠加无序充电负荷后','叠加有序充电负荷后');xlabel('时间/h');ylabel('负荷/kW');

基于蒙特卡诺和拉格朗日乘子法的电动车调度【有序、无序充放电】【Matlab代码】相关推荐

  1. (Matlab实现)基于蒙特卡诺和拉格朗日乘子法的电动车调度【有序、无序充放电】

     目录 1 概述 2 蒙特卡洛模拟方法介绍 3 拉格朗日乘子法 4 规模化电动汽车充电负荷预测计算方法 5 Matlab代码实现 1 概述 电动汽车EV(Electric Vehicle)具有清洁环保 ...

  2. 【有序充电】基于蒙特卡诺和拉格朗日乘子法模拟电动车有序和无序充电附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  3. 基于候鸟优化算法(MBO)的柔性车间调度优化研究(Matlab代码实现)

  4. 数值计算之 拉格朗日乘子法初探

    数值计算之 拉格朗日乘子法初探 前言 等式约束优化 等式约束的几何解释 不等式约束优化 多约束优化 KKT条件 代码示例 前言 LM算法的置信域方法中,通过在优化函数后添加一个优化量约束来提升迭代过程 ...

  5. 拉格朗日乘子法(Lagrange Multiplier)和KKT条件

    拉格朗日乘子法(Lagrange Multiplier)和KKT条件 一:前言 如果我们现实生活中的多元值求最优化的问题,我们会遇到一下三种场景: 无条件约束的优化问题 有等式约束的优化问题 有不等式 ...

  6. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

  7. 基础数学知识(一)——拉格朗日乘子法

    这几天一直在看支持向量机,然后就是大量大量的数学公式,一直迷迷糊糊的,然后一直遇到拉格朗日,拉格朗日,原来数学基础也不好,没怎么学过,于是下定决心要把拉格朗日乘子法搞懂,花了几天,看了一些文章,算是对 ...

  8. ESL3.4 学习笔记(奇异值分解与拉格朗日乘子法下的岭回归,Lasso回归,最小角回归及三者对比分析)

    3.4 收缩的方法 这是一篇有关<统计学习基础>,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放 ...

  9. SVM中拉格朗日乘子法、KKT条件、对偶问题详解

    SVM中拉格朗日乘子法.KKT条件.对偶问题详解 创作目的 1.SVM回顾 2.拉格朗日乘子法 3.KKT条件 4.对偶问题 强对偶性证明 总结 创作目的 我是机器学习初学者,目前正在上机器学习课,老 ...

最新文章

  1. ckc交易什么意思_限价委托是什么意思?有限制的委托交易
  2. 怎样使用AutoLayOut为UIScrollView添加约束
  3. CSP认证201509-1 数列分段[C++题解]:遍历
  4. Android Serializable与Parcelable原理与区别
  5. java 单例加锁方法的讨论
  6. 15行代码抓取兰亭序全文单字高清字帖
  7. win8系统下用VMware虚拟机启动Windows Server 2008报错问题解决方法
  8. ASP.NET2.0 分页控件 PagerPro.dll (1.1.0 最新)
  9. [NOI2003]Editor [AHOI2006]文本编辑器editor BZOJ1507BZOJ1269
  10. android+nfc+助手,NFC助手app
  11. linux 文本筛选基因,linux – 如何将snps映射到ref基因文件
  12. 985硕士美女程序媛:10次面试的真实经历!阿里/携程/美团/58/华为....
  13. Linux系统操作(21):物理cpu数、cpu核数、逻辑cpu数、几路几核几线程、CPU信息详细查询方法
  14. 以一半的价格组装专业的深度学习工作站
  15. C语言实现建立顺序表,修改顺序表,插入顺序表,删除顺序表
  16. jQuery+Ajax实现表格数据不同列标题排序
  17. webstorm 2017 激活pojie,
  18. Azkaban的使用
  19. 报错Can‘t resolve ‘fs‘ in /Cannot read property ‘prototype‘ of undefined
  20. 高速SerDes PCB 设计

热门文章

  1. IP地址0.0.0.0表示什么
  2. 设计模式日常学习(四)
  3. ***pxj爱喝可乐***
  4. 关于开源项目《Scavenger》
  5. 计算机应用基础考查方案,《计算机应用基础》考查方案
  6. 签名密钥和加密密钥区别?
  7. USART_IT与USART_FLAG,USART_GetITStatus与 USART_GetFlagStatus
  8. 2008.11.05 从明天开始,我的人生将掀开新的篇章
  9. 武汉理工大龙芯计算机学院2000级,信息学院学生团队获第四届龙芯杯计算机系统能力培养大赛三等奖...
  10. SQL为什么动不动就百行以K记?