考虑光伏出力利用率的电动汽车充电站能量调度策略研究(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代码实现) 的相关文章

  • 在python中访问包含matlab类的.mat文件

    我有一个从 matlab 2012b 生成的 mat 文件 它包含一个带有用户定义的 matlab 类的变量 在 python 3 3 中使用 scipy io loadmat 加载文件时 我得到以下信息 mat scipy io load
  • MATLAB:让audioplayer()在函数结束后继续播放

    我正在使用使用以下子函数的代码 function playTone duration toneFreq Generate a tone samplesPerSecond 44100 the bit rate of the tone y si
  • 使用二进制遮罩遮罩 RGB 图像

    我在 MATLAB 中读入了一个 RGB 图像 M x N x 3 矩阵 我还有一个图像的二进制掩码 M x N 矩阵 对于某些感兴趣的区域来说它只是 0 而其他地方都是 1 我正在尝试找出如何使用该二进制掩码来掩蔽 RGB 图像 我尝试过
  • 如何绘制 NxN 圆数组?

    我想绘制一个 NxN 的圆数组 为了形象化 我附上了我想要实现的目标的图像 我是 MatlLab 的新手 所以我尝试先绘制一个圆 下面是示例代码 n 2 10 size of mask M zeros n I 1 n x I n 2 mas
  • 读取 MEX 文件中的 4D 数组

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

    我正在尝试使用 MATLAB 引擎在 Python 中调用 MATLAB 函数 但遇到一些问题 在设法将 NumPy 数组作为函数的输入处理后 现在 MATLAB 出现一些错误 MatlabExecutionError 未定义输入函数 si
  • 在 MATLAB 中绘制圆

    我被要求找到在 MATLAB 中绘制圆的不同方法 看起来很无聊 不过我可以想出一些想法 有些可能效率低下 Method 1 ezpolar x 1 Method 2 t linspace 0 2 pi 100 plot sin t cos
  • 如何从 Matlab 在 vi​​rtualenv 中执行 Python 代码

    我正在创建一个用于研究的 Matlab 工具箱 我需要执行 Matlab 代码 但也需要执行 Python 代码 我想允许用户从 Matlab 执行 Python 代码 问题是 如果我立即执行此操作 我将必须在 Python 环境中安装所有
  • Google Chrome 的互联网历史记录脚本

    我并不是在寻找 最佳 或最有效的脚本来执行此操作 但我想知道是否存在一个脚本可以从 Google Chrome 中提取一天的互联网历史记录并将其记录到 txt 文件中 我更喜欢用 Python 或 MATLAB 编写 如果你们有不同的方法
  • Matlab 中二维插值的函数形式

    我需要从二维数据数组构造一个插值函数 我需要返回实际函数的东西的原因是 我需要能够将函数作为我需要进行数值积分的表达式的一部分进行计算 因此 interp2 并没有解决这个问题 它不返回函数 我可以使用 TriScatteredInterp
  • MATLAB:涉及大数的计算

    如何在 MATLAB 中执行涉及大量数字的计算 举一个简单的例子 任意精度计算器将显示 1 120 132 370 260 约为 1 56 但 MATLAB 无法执行此类计算 power 120 132 factorial 370 fact
  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • 带 if 语句的可向量化 FIND 函数 MATLAB

    我有一个矩阵u 我想遍历所有行和所有列并执行以下操作 如果元素非零 我返回行索引的值 如果元素为零 则查找该元素之后的下一个非零元素的行索引 我可以使用两个带有 find 函数的 for 循环轻松完成此操作 但我需要多次执行此操作 不是因为
  • 如何在Matlab脚本中将泰勒级数系数存储到数组中

    这个问题是在 m 脚本的上下文中 我知道如何获取函数的泰勒级数 但我没有看到任何命令允许将级数的系数存储到数组中 sym2poly似乎不起作用 如何将系数存储到数组中 例如这个函数 syms x f 1 x 2 4 x 9 我们怎样才能得到
  • MATLAB 链表

    有哪些可能的方法来实现链表MATLAB http en wikipedia org wiki MATLAB 注意 我问这个问题是为了教学价值 而不是实用价值 我意识到 如果您实际上在 MATLAB 中滚动自己的链表 那么您可能做错了什么 然
  • 将 Android 应用程序与服务器上的 Matlab 应用程序连接

    我正在 Android 上开发一个应用程序 它将获取图像输入 并将该输入传递到安装 MATLAB 应用程序的服务器 MATLAB 应用程序将计算结果并将其返回到该 Android 应用程序 我想知道我可以使用哪个服务器 如何将 MATLAB
  • 将输出从符号数学 (sym) 转换为浮点型

    我的问题类似于这个问题 https stackoverflow com questions 11114101 how to convert mupad symbol i sqrt 1 to i in matlab 11114959 1111
  • 在 Matlab 中对列进行排序

    我有 2 列使用 textscan 导入的数据 数据看起来像这样 其中U is undetect and D is detect mydata 51 U 57 D 48 U 47 D my data 4x1 double 4x1 char
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2

随机推荐