考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

2024-01-24

???????????????? 欢迎来到本博客 ❤️❤️????????

????博主优势: ???????????? 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️ 座右铭: 行百里者,半于九十。

???????????? 本文目录如下: ????????????

目录

????1 概述

????2 运行结果

????3 参考文献

????4 Matlab代码、数据


????1 概述


针对间歇性能源利用的问题,构建电动汽车的充放电灵活度指标,用以评估电动汽车参与光伏充电站能量调度的能力;令充电站在饥饿模式或饱和模式下运行,并根据当前运行模式采用不同的电动汽车准入规则,以最大化光伏输出利用率和充电任务完成率为目标,根据电动汽车充放电灵活度动态制定电价,在提升光伏利用率的同时减少发电量波动带来的影响。
主要贡献如下:
A.提出了充电/放电灵活性评估EV参与能源调度的能力。充分利用V2G服务,加强了电动汽车与充电站的合作。
B.考虑到充电站与主电网隔离。PCS根据EV的灵活性动态地确定PV的使用,并在增加PV利用率的同时减少PV输出波动的影响。

随着电动汽车的普及,充电站的能量调度策略变得越来越重要。光伏出力利用率是指光伏发电系统实际发电量与理论最大发电量之比,是衡量光伏发电系统性能的重要指标。在电动汽车充电站中,光伏出力利用率的提高可以有效地降低充电成本,提高能源利用效率。

为了研究光伏出力利用率的电动汽车充电站能量调度策略,可以从以下几个方面进行研究:

1. 光伏发电系统的优化设计:通过优化光伏发电系统的设计,提高光伏出力利用率。可以考虑选择合适的光伏组件、逆变器和支架,优化光伏阵列的布置和倾角,以及采用智能跟踪系统等技术手段,提高光伏发电系统的性能。

2. 充电设备的智能控制:通过智能控制充电设备的充电功率和充电时段,使充电设备在光伏出力较高时进行充电,从而提高光伏出力利用率。可以采用预测光伏出力的方法,结合充电需求进行动态调度,实现最优的能量调度策略。

3. 储能系统的应用:在光伏发电系统和充电设备之间增加储能系统,可以在光伏出力较低时存储多余的电能,然后在光伏出力较低时释放电能进行充电,从而提高光伏出力利用率。

综合考虑以上几个方面,可以研究出一套针对光伏出力利用率的电动汽车充电站能量调度策略,从而实现充电成本的降低和能源利用效率的提高。这对于推动电动汽车的普及和光伏发电系统的应用具有重要意义。

???? 2 运行结果

部分代码:

pvFlu=0.2;   %光伏出力的波动范围为0.2
p1=1;    %光伏电价系数
p2=1;    %基础电价
EVnum=sum(dayev);
time=24;   %每个时间段为半小时,共计12小时

originFile=evfile;
curFile=[];
preFile=[];
waitFile=[];
acpLine=zeros(2,time);   %EV接收记录
scheLine=zeros(EVnum,time);  %EV操作记录,第一列为EV编号
pvUseLine=zeros(time,8);

%初始时刻的求解
Tcur=1;
curFile=evfile(:,1);
flexLine=getFlexLine(curFile,Tcur);
[~,window]=size(flexLine);
capTrans=2*abs(flexLine(2,:));     %EV需求电量的变动范围=2*放电自由度
pvUseMax=max(capTrans/pvFlu,0.8*pvFuture(Tcur:Tcur+window-1)');   %pv计划用量=max(pv安全用量,pv预测值下限)
pvUseMax=min(pvUseMax,pvFuture(Tcur:Tcur+window-1)');   %pv使用量不能超过光伏预测值
pvUseLine(1,:)=[pvUseMax(1,:),zeros(1,8-length(pvUseMax))];
price=p2-p1*(pvUseMax/(sum(pvUseMax)));  %依据光伏出力波动制定时变电价
%求解schedule
schedule=CvxSchedule(curFile,Tcur,price,pvUseMax);
%应用schedule
curNum=size(curFile,2);
for i=1:curNum
EVtag=curFile(6,i);   %获取EV编号
curFile(1,i)=curFile(1,i)+schedule(i);   %更新电量信息
scheLine(EVtag,Tcur)=schedule(i);   %记录充放电行为
end


for Tcur=2:time
% 更新curFile,将已到达离网时间的EV切出PL
curNum=size(curFile,2);
for i=1:curNum
point=curNum+1-i;
if(curFile(4,point)<Tcur)
preFile=[preFile,curFile(:,point)];
curFile(:,point)=[];
end
end
%计算curFile下的PL电量富余
curNum=size(curFile,2);
Tleft=zeros(curNum,1);
for i=1:curNum
Tleft(i)=curFile(4,i)-Tcur+1;
end
window=max(Tleft);  %窗口大小

supply=sum(0.8*pvFuture(Tcur:Tcur+window-1)');
demand=sum(curFile(2,:)-curFile(1,:));
leftSupply=supply-demand;
%更新当前evfile,接收符合条件的EV
preNum=sum(dayev(1:Tcur-1));
waitNum=dayev(Tcur);
waitFile=evfile(:,preNum+1:preNum+waitNum);
for i=1:waitNum
subDemand=waitFile(2,i)-waitFile(1,i);
if leftSupply>=subDemand
curFile=[curFile,waitFile(:,i)];     %添加到当前evfile
leftSupply=leftSupply-subDemand;
acpLine(1,Tcur)=acpLine(1,Tcur)+1;   %接收记录+1
else
acpLine(2,Tcur)=acpLine(2,Tcur)+1;   %拒收记录+1
end
end
%evfile更新完毕,重新计算光伏用量
flexLine=getFlexLine(curFile,Tcur);
window=size(flexLine,2);
capTrans=2*abs(flexLine(2,:));     %EV需求电量的变动范围=2*放电自由度
pvUseMax=max(capTrans/pvFlu,0.8*pvFuture(Tcur:Tcur+window-1)');   %pv计划用量=max(pv安全用量,pv预测值下限)
pvUseMax=min(pvUseMax,pvFuture(Tcur:Tcur+window-1)');   %pv使用量不能超过光伏预测值
pvUseLine(Tcur,:)=[pvUseMax(1,:),zeros(1,8-length(pvUseMax))];
price=p2-p1*(pvUseMax/(sum(pvUseMax)));  %依据光伏出力波动制定时变电价
%求解schedule
schedule=CvxSchedule(curFile,Tcur,price,pvUseMax);
%应用schedule

????3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]葛文捷.含光伏电源的电动汽车充电站服务定价策略研究[D].北京交通大学,2015.

[2]陈浩然,赵晓丽.考虑分布式光伏发电的电动汽车充电策略研究[J].中国管理科学, 2023, 31(4):161-170

[3]李宁,田丽,董阿龙,等.电动汽车光伏充电站能量优化管理[J].鸡西大学学报, 2019, 019(009):31-36.

???? 4 Matlab代码、数据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现) 的相关文章

  • 在 GUI MATLAB 中为静态文本赋值

    如何在 MATLAB GUI 中为静态文本赋值 双击指南中的文本打开属性编辑器 然后编辑 String 财产 您还可以设置 Tag 属性 以便您可以在 GUI 运行时对其进行编辑 如果您将标签设置为mytext 您可以将静态文本更改为 My
  • 将 3D 矩阵与 2D 矩阵相乘

    假设我有一个AxBxC matrix X and a BxD matrix Y 是否有一种非循环方法可以将每个C AxB矩阵与Y 作为个人喜好 我希望我的代码尽可能简洁和可读 这是我会做的 尽管它不符合您的 无循环 要求 for m 1 C
  • 如何在Matlab中计算两个矩阵之间的快速外积?

    我有两个 n m 矩阵 A and B 我想创建一个新的矩阵C类似于 for i 1 n C C outerProduct A i B i end i e C是一个大小为 m x m 的矩阵 即各行的所有外积之和A and B 有没有一种无
  • Matlab更新子图并坚持下去

    我在更新子图时遇到问题 我将我的问题归结为以下示例 win figure 1 win sub1 subplot 2 2 1 win sub2 subplot 2 2 2 win sub3 subplot 2 2 3 win sub4 sub
  • 具有表面梯度的颜色 matplotlibplot_surface 命令

    我想将 surf 命令从MATLAB到plot surface命令中绘图库 我面临的挑战是使用时cmapplot surface 命令中的函数用渐变为表面着色 这里是matlab script Matlab Commands x 5 25
  • 将数据库导入 MATLAB 错误

    我正在尝试将表导入到我的 MATLAB 工作区 但它一直向我抛出错误 Undefined function or method fetch for input arguments of type struct 这是我尝试执行的代码 dyn
  • 将矩阵从 3d 重塑为 2d 并保持特定顺序

    我想将 4x3x5 形式的矩阵调整为 20x3 的二维矩阵 但同时保留顺序 如下所示 功能reshape 不保留这个特定的顺序 我怎样才能以最简单的方式实现这一点 让我们一劳永逸地解决这些跨越三维的串联和切割问题吧 第一部分 3D 到 2D
  • Matlab:不正确的索引矩阵参考(或智胜matlab)

    我希望能够写jasmine http pivotal github io jasmine 类似于 Matlab 中的测试 所以像 expect myfibonacci 0 toBe 0 expect myfibonacci 5 toBe 1
  • 同时使用两个数组中的元素的过滤器

    假设我们有两个大小相同的数组 A and B 现在 我们需要一个过滤器 对于给定的掩码大小 从以下位置选择元素A 但删除掩码的中心元素 并在其中插入相应的元素B 所以 3x3 伪掩码 看起来类似于 A A A A B A A A A 对平均
  • 计算向量中连续 1 和 0 的数量

    在 Matlab 中我有一个如下所示的向量 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 我现在要做的是统计这个向量中1的个数 连续的 1 算作 1 此外 我还想计算 1 之间 0 的平均值和中
  • 读取 MEX 文件中的 4D 数组

    我在 MATLAB 中有一个 4 维数组 我正在尝试访问 MEX 函数中的数组 下面创建 testmatrix 一个 4 维矩阵 已知数据为uint8 type Create a 4D array 2x 2y rgb 3 framenumb
  • MATLAB 黑洞变量

    MATLAB 是否有 黑洞 或丢弃变量 假设我正在做类似的事情 rows cols size A 但我不想存储行 是否有一个 黑洞 变量可以让我发送值去死 所以任务就像 BLACKHOLE cols size A 其中 BLACKHOLE
  • MATLAB:解包函数

    我正在与 Mathworks 的某人讨论 unwrap http www mathworks com access helpdesk help techdoc ref unwrap html函数中对于 以外的跳跃容差有一个 bug 并且希望
  • MATLAB:涉及大数的计算

    如何在 MATLAB 中执行涉及大量数字的计算 举一个简单的例子 任意精度计算器将显示 1 120 132 370 260 约为 1 56 但 MATLAB 无法执行此类计算 power 120 132 factorial 370 fact
  • 优化数组压缩

    假设我有一个数组k 1 2 0 0 5 4 0 我可以按如下方式计算掩码m k gt 0 1 1 0 0 1 1 0 仅使用掩码 m 和以下操作 左移 右移 And Or 加 减 乘 我可以将 k 压缩为以下形式 1 2 5 4 以下是我目
  • MATLAB 图像锐化 - 使用(1-高斯低通滤波器)的高斯高通滤波器

    我试图通过设计高斯高通滤波器来锐化图像 我想利用高通滤波器相当于单位矩阵减去低通滤波器的事实来做到这一点 所以我执行了以下操作 image imread Question3 Data Cats jpg read image H 1 fspe
  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第
  • 如何打开 matlab p 代码文件

    有谁知道如何查看 matlab p 代码文件的代码 p 代码文件专门存在 以便您可以共享代码 以便其他人无法查看它 换句话说 您看不到 Matlab p 代码文件的代码
  • MATLAB:生成给定三种颜色的颜色图

    我正在尝试在 MATLAB 中生成给定三种颜色 最高值 零值和最低值 的颜色图 我的思维过程是从最高端到中间循环 并将每个步骤存储到一个 3xN 第一列是 R 第二列是 G 第三列是 B 矩阵 所以我正在使用 fade from high
  • 带 if 语句的可向量化 FIND 函数 MATLAB

    我有一个矩阵u 我想遍历所有行和所有列并执行以下操作 如果元素非零 我返回行索引的值 如果元素为零 则查找该元素之后的下一个非零元素的行索引 我可以使用两个带有 find 函数的 for 循环轻松完成此操作 但我需要多次执行此操作 不是因为

随机推荐