基于共享储能电站的工业用户日前优化经济调度【复现】

文章提出一种基于共享储能电站的工业用户日前优化经济调度方法。首先提出共享储能电站的概念,分析其 商业运营模式。然后将共享储能电站应用到工业用户经济优化调度中,通过协调各用户使用共享储能电站进行充电和 放电的功率,实现用户群日运行成本最优。最后以江苏省 3 个工业用户进行算例仿真,与用户不配置储能和用户独立 配置储能场景对比,得出引入共享储能电站可以显著降低用户群日运行成本,并对储能电站年服务费收益、静态投资回 收年限和投资回报率与共享储能电站服务费定价间的关系做进一步的研究。

部分代码

%论文复现——场景3部分
%基于共享储能电站的工业用户日前优化经济调度[J].电力建设clc
clear
close all%% 参数设置
P_grid=sdpvar(3,24); %用户从电网购买的电功率
P_ess_b=sdpvar(3,24); %用户使用共享储能电站放电的功率
P_ess_s=sdpvar(3,24); %用户使用共享储能电站充电的功率
U_ess_b=binvar(3,24); %用户使用共享储能的放电状态位,取1时为放电,0为未放电
U_ess_s=binvar(3,24); %用户使用共享储能的充电状态位,取1时为充电,0为未充电
E=sdpvar(1,24); %储能电站的荷电状态
P_abs=sdpvar(1,24); %储能电站的充电功率
P_relea=sdpvar(1,24); %储能电站的放电功率
E_init=sdpvar(1,1); %储能电站的初始容量
E_max=sdpvar(1,1); %储能电站的预配置容量
P_max=sdpvar(1,1); %储能电站的预配置最大充放电功率
U_abs=binvar(1,24); %储能电站的放电状态位,取1时为放电,0为未放电
U_relea=binvar(1,24); %储能电站的充电状态位,取1时为充电,0为未充电
%% 用户参数导入
gamma=[0.37*ones(1,8),1.36*ones(1,4),0.82*ones(1,5),1.36*ones(1,4),0.82*ones(1,3)]; %电网的"峰-平-谷"电价
delta=0.33*ones(1,24); %共享储能电站的服务费
P_load(1,:)=[80,75,75,75,75,75,75,75,95,155,160,180,160,165,150,165,160,175,160,130,140,100,90,85];
P_load(2,:)=[200,50,150,190,25,50,30,20,40,170,220,150,65,160,170,150,230,125,140,200,125,70,110,65];
P_load(3,:)=[105,100,95,100,100,105,110,110,120,110,115,120,135,110,120,125,130,125,115,130,120,120,115,120];
P_pv(1,:)=[0,0,0,0,0,0,0,0,75,275,540,675,750,750,330,170,75,10,0,0,0,0,0,0];
P_pv(2,:)=zeros(1,24);P_pv(3,:)=zeros(1,24);
P_wind(1,:)=zeros(1,24);
P_wind(2,:)=[150,150,175,165,140,130,120,90,50,55,80,100,135,135,130,110,60,50,50,70,90,120,140,120];
P_wind(3,:)=[130,145,155,135,120,125,115,95,40,30,50,85,110,115,110,70,35,40,40,50,80,80,115,95];
%% 约束条件C2=sum(delta.*(P_ess_b(1,:)+P_ess_s(1,:)))+sum(delta.*(P_ess_b(2,:)+P_ess_s(2,:)))+sum(delta.*(P_ess_b(3,:)+P_ess_s(3,:))); %用户群向储能电站缴纳的服务费
F=C1+C2; %总目标函数
%% 模型求解
ops=sdpsettings('solver','cplex','verbose',2,'usex0',0);
ops.cplex.mip.tolerances.mipgap=1e-6;
result=optimize(C,F,ops);if result.problem == 0 % problem =0 代表求解成功
elseerror('求解出错');
end
%% 数据导出及画图
E_max=value(E_max);P_max=value(P_max);
display(['最优储能电站容量规划值为 : ', num2str(E_max),' kWh']);
display(['最优储能电站充放电功率最大值为 : ', num2str(P_max),' kW']);
P_grid=value(P_grid);P_ess_b=value(P_ess_b);P_ess_s=value(P_ess_s);
E=value(E);P_abs=value(P_abs);P_relea=value(P_relea);
%用户A的电负荷平衡曲线
for t=1:24if P_grid(1,t)<0.01P_grid(1,t)=0; %由于Cplex求解精度,把极小的值设为0end
end
for t=1:24Plot_UserA(1,t)=P_grid(1,t);Plot_UserA(2,t)=P_ess_b(1,t);Plot_UserA(3,t)=-1*P_ess_s(1,t);
end
Plot_UserA=Plot_UserA';
figure
bar(Plot_UserA,'stacked');
hold on
plot(P_load(1,:),'k-o','LineWidth',1.5);
hold on
plot(P_pv(1,:),'b-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
title('用户A的电负荷平衡曲线');
legend('从电网购电功率','使用储能电站的放电功率','使用储能电站的充电功率','用户A电负荷','光伏出力');
legend('boxoff');
box off
%用户B的电负荷平衡曲线
for t=1:24if P_grid(2,t)<0.01P_grid(2,t)=0; %由于Cplex求解精度,把极小的值设为0end
end
for t=1:24Plot_UserB(1,t)=P_grid(2,t);Plot_UserB(2,t)=P_ess_b(2,t);Plot_UserB(3,t)=-1*P_ess_s(2,t);
end
Plot_UserB=Plot_UserB';
figure
bar(Plot_UserB,'stacked');
hold on
plot(P_load(2,:),'k-o','LineWidth',1.5);
hold on
plot(P_wind(2,:),'b-o','LineWidth',1.5);
xlabel('时间/h');
ylabel('功率/kW');
title('用户B的电负荷平衡曲线');
legend('从电网购电功率','使用储能电站的放电功率','使用储能电站的充电功率','用户B电负荷','风电出力)

完整代码

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源加解密库之GmSSL

一、简介 GmSSL是由北京大学自主开发的国产商用密码开源库&#xff0c;实现了对国密算法、标准和安全通信协议的全面功能覆盖&#xff0c;支持包括移动端在内的主流操作系统和处理器&#xff0c;支持密码钥匙、密码卡等典型国产密码硬件&#xff0c;提供功能丰富的命令行工具及…

代码随想录1月9日平衡二叉树、二叉树的所有路径

110.平衡二叉树 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输…

idea右上角浏览器图标没有idea内部浏览器怎么显示

idea右上角浏览器图标没有idea内部浏览器怎么显示 file -> settings -> tools -> web brosers 选择需要的浏览器&#xff0c;勾选上展示到编辑器中 打开上图的Built-in Preview&#xff0c;就会显示idea标志的内部显示了&#xff01;&#xff01;&#xff01;

【Linux系统编程二十七】:线程的互斥与同步(互斥锁的使用与应用)

【Linux系统编程二十七】&#xff1a;线程的互斥与同步(互斥锁的使用与应用&#xff09; 一.问题:数据不一致(混乱/不安全)1.多线程并发计算不安全2.将数据加载到寄存器的本质 二.解决方法--互斥锁三.互斥锁的概念与接口1.定义锁2.加锁/解锁 四.互斥锁实现原理与应用1.原理&…

QT应用篇:QT解析与生成XML文件的四种方式

四种常见的解析 XML 的方式(DOM、SAX、以及基于 Qt 的 XmlStreamReader)各有自己的优缺点,适合不同的应用场景。 DOM 适合小型且结构简单的 XML 文件,需要频繁修改和操作整个文档结构的情况。SAX 适合大型 XML 文件,以及只需读取不需要修改的情况。基于 Qt 的 XmlStreamRe…

国内低代码开发平台排名 盘点十家主流低代码平台

随着数字化转型的加速&#xff0c;低代码开发平台作为一种新型软件开发方式&#xff0c;受到了广泛关注。国内低代码市场也呈现出蓬勃发展的态势&#xff0c;各种低代码平台如雨后春笋般涌现。本文将对国内低代码平台进行排名&#xff0c;以帮助企业和开发者更好地了解市场情况…

C盘清理详细教程,跟着我做,c盘想爆满也难【建议收藏】

C盘爆红对于咱们来说&#xff0c;简直太难受了&#xff0c;今天就总结一篇文章&#xff0c;专门用来教大家解决C盘空间不足的问题&#xff0c;优化步骤分为三个阶段&#xff0c;可以一步一步的进行。 目录 入门优化&#xff1a; 删除掉不用的软件 清空存储里面的临时文件&am…

论文设计任务书学习文档|TOPOLOGY网管软件的研究与实现

文章目录 论文&#xff08;设计&#xff09;题目&#xff1a;1、论文&#xff08;设计&#xff09;的主要任务及目标2、论文&#xff08;设计&#xff09;的主要内容3、论文&#xff08;设计&#xff09;的基本要求4、进度安排 论文&#xff08;设计&#xff09;题目&#xff1…

2024年跨境电商上半年有哪些营销节日?

2024年伊始&#xff0c;跨境电商开启新一轮的营销竞技&#xff0c;那么首先需要客户需求&#xff0c;节假日与用户需求息息相关&#xff0c;那么接下来小编为大家整理2024上半年海外都有哪些节日和假期&#xff1f;跨境卖家如何见针对营销日历选品&#xff0c;助力卖家把握2024…

告别冗余空白,批量删除空白行

你是否遇到过这样的尴尬情况&#xff1a;花费了大量时间整理的文档&#xff0c;却在最后发现其中充斥着无用的空白行&#xff0c;这些多余的空行不仅影响美观&#xff0c;还让整个文档显得杂乱无章。今天&#xff0c;我要给大家介绍一款强大且实用的工具——首助编辑高手&#…

【Java EE初阶八】多线程案例(计时器模型)

1. java标准库的计时器 1.1 关于计时器 计时器类似闹钟&#xff0c;有定时的功能&#xff0c;其主要是到时间就会执行某一操作&#xff0c;即可以指定时间&#xff0c;去执行某一逻辑&#xff08;某一代码&#xff09;。 1.2 计时器的简单介绍 在java标准库中&#xff0c;提供…

网络的设置

一、网络设置 1.1查看linux基础的网络设置 网关 route -n ip地址ifconfigDNS服务器cat /etc/resolv.conf主机名hostname路由 route -n 网络连接状态ss netstat域名解析nslooup host 例题&#xff1a;除了ping&#xff0c;什么命令可以测试DNS服务器来解析服务…