考虑柔性负荷的综合能源系统低碳经济优化调度【复现】

随着低碳发展进程的不断推进,综合能源系统(IES)逐渐成为实现减排目标的重要支撑技术。 基于能 源集线器概念,结合需求侧柔性负荷的可平移、可转移、可削减特性,构建了含风光储、燃气轮机、柔性负荷等 在内的 IES 模型。 综合考虑了系统运行成本和碳交易成本,建立了以总成本最低为优化目标的 IES 低碳经济 调度模型,采用鲸鱼优化算法对算例进行求解。 通过场景对比,分析了碳交易因素对能源调度的影响,以及在 碳交易体系之下,柔性负荷的合理调度对 IES 进一步减少碳排放、降低系统成本可发挥的作用。 研究结果表 明,在碳交易体系下,柔性负荷参与调度能有效地提高系统的经济环境综合效益。

部分代码

%定义机组变量
P_pv=sdpvar(1,24,'full');%光伏电输出功率
P_wt=sdpvar(1,24,'full');%风机电输出功率
P_mt=sdpvar(1,24,'full');%燃气轮机电输出功率
P_GB=sdpvar(1,24,'full');%燃气锅炉输出热功率Pbuy=sdpvar(1,24,'full');%从电网购电电量
Psell=sdpvar(1,24,'full');%向电网售电电量
Pnet=sdpvar(1,24,'full');%与电网交换功率
Temp_net=binvar(1,24,'full'); % 购|售电标志Pcharge=sdpvar(1,24,'full');%充电功率
UPcharge=binvar(1,24,'full');%充电标志  
Pdischarge=sdpvar(1,24,'full');%放电功率
UPdischarge=binvar(1,24,'full');%放电标志  
B=sdpvar(1,24,'full');%电储能余量Hcharge=sdpvar(1,24,'full');%储热系统充热
Hdischarge=sdpvar(1,24,'full');%储热系统放热
UHcharge=binvar(1,24,'full'); %储热系统充热标志
UHdischarge=binvar(1,24,'full'); %储热系统放热标志
H=sdpvar(1,24,'full'); %热储能余量%% 燃料成本
C_fuel=0;
for i=1:24C_fuel=C_fuel+2.5*P_GB(i)/9.7+2.5*P_mt(i)/0.45/9.7;%耗气成本
end
%% 储能运行成本
C_storge=0;
for i=1:24C_storge=C_storge+0.5*(Pcharge(i)+Pdischarge(i)+Hcharge(i)+Hdischarge(i));%储能运行成本
end%% 补偿成本
C_L=0;
for i=1:24C_L=C_L+0.2*(PPshift1(i)+PPshift2(i))+0.1*HHshift(i)+0.3*PPtran(i)+0.4*PPcut(i)+0.2*HHcut(i);
end
%% 碳交易成本Q_carbon=0;%碳排放量-碳配额量(克)
for i=1:24Q_carbon=Q_carbon+(((1303-798)*(Pbuy(i)+abs(Psell(i)))+(564.7-424)*(P_GB(i)/9.7+P_mt(i)/0.45/9.7)+...(43-78)*P_wt(i)+(154.5-78)*P_pv(i)+91.3*(Pcharge(i)+Pdischarge(i))));
endE_v=sdpvar(1,5);%每段区间内的长度,分为5段,每段长度是2000
lamda=0.15*10^(-3);%碳交易基价
Constraints=[Constraints,Q_carbon==sum(E_v),%总长度等于Q_carbon0<=E_v(1:4)<=120000,%除了最后一段,每段区间长度小于等于120000g0<=E_v(5),];
%碳交易成本
C_CO2=0;
for v=1:5C_CO2=C_CO2+(lamda+(v-1)*0.25*lamda)*E_v(v);
endF= C_OM+C_fuel+C_gridbuy+C_gridsell+C_storge+C_L+C_CO2;
ops = sdpsettings('solver','cplex', 'verbose', 2);%参数指定程序用cplex求解器
optimize(Constraints,F,ops)
% ops=sdpsettings('solver','cplex');%设置求解方式
% [model,recoveryalmip,diagnostic,internalmodel]=export(Constraints,F,ops);%转为cplex模型
% milpt=Cplex('milp for htc');
% milpt.Model.sense='minimize';
% milpt.Model.obj=model.f;
% milpt.Model.lb=model.lb;
% milpt.Model.ub=model.ub;
% milpt.Model.A=[model.Aineq;model.Aeq];
% milpt.Model.lhs=[-inf*ones(size(model.bineq,1),1);model.beq];
% milpt.Model.rhs=[model.bineq;model.beq];
% milpt.Model.ctype=model.ctype;
% milpt.writeModel('ab.lp');%输出cplex模型(注意大小写)
% milpt.solve();%模型求解F=value(F)%成本
P_pv=value(P_pv);
P_wt=value(P_wt);
P_mt=value(P_mt);
P_GB=value(P_GB);
Pcharge=value(Pcharge);
Pdischarge=value(Pdischarge);
Hcharge=value(Hcharge);
Hdischarge=value(Hdischarge);
Pbuy=value(Pbuy);
Psell=value(Psell);
PPshift1=value(PPshift1);
PPshift2=value(PPshift2);
PPtran=value(PPtran);
PPcut=value(PPcut);
HHshift=value(HHshift);
HHcut=value(HHcut);%% 画图figure
ee=value([Pfix;Pcut;Pshift1;Pshift2;Ptran]);
bar(ee',1,'stack')
hold on
plot(Pfix+Pcut+Pshift1+Pshift2+Ptran,'g-*','linewidth',2)
hold on 
plot(Pfix,'y-*','linewidth',2)
xlabel('时间/h');
ylabel('电负荷功率/kW');
legend('基础电负荷','可消减电负荷','可平移电负荷1','可平移电负荷2','可转移电负荷','等效负荷','固定负荷');
title('优化前用户侧柔性电负荷分布');figure
hh=value([Hfix;Hcut;Hshift]);
bar(hh',1,'stack');
hold on
plot(Hfix+Hcut+Hshift,'c-*','linewidth',2)
hold on 
plot(Hfix,'y-*','linewidth',2)
legend('基础热负荷','可消减热负荷','可平移热负荷','等效热负荷','基础热负荷');
xlabel('时间/h');
ylabel('热负荷功率/kW');
title('优化前用户侧柔性热负荷分布');for i=1:24op_e_load(i)=Pfix(i)+Pcut(i)+PPshift1(i)+PPshift2(i)+PPtran(i)-PPcut(i);
end
x=1:24;figure
bar(e_load-op_e_load,'b');
hold on
xlabel('时间/h');
ylabel('电负荷/kW');
yyaxis right
plot(buy_price,'r--*','linewidth',2);
xlabel('时间/h');
ylabel('电价');
title('需求响应前后电负荷曲线');
legend('响应电负荷','市场电价');figure
bar(e_load,'r');
hold on
plot(op_e_load,'g-*','linewidth',2);
xlabel('时间/h');
ylabel('电负荷/kW');
title('需求响应前后电负荷曲线');
legend('优化前电负荷','优化后电负荷');E_v=value(E_v);
figure
bar(E_v,0.5)
xlabel('时间/h');
ylabel('碳交易量');
yyaxis right
ecc=(lamda+(v-1)*0.25*lamda)*E_v;
plot(ecc,'r-*','linewidth',2)
ylabel('碳交易成本');
ylim([24 50]);
legend('阶梯式碳交易量','阶梯式碳交易成本');figure
s=(((1303-798)*(Pbuy+abs(Psell))+(564.7-424)*(P_GB/9.7+P_mt/0.45/9.7)+...(43-78)*P_wt+(154.5-78)*P_pv+91.3*(Pcharge+Pdischarge)));
bar(s,0.5,'g')
hold on
yyaxis right
plot(buy_price,'r-*','linewidth',2);
xlabel('时间/h');
ylabel('电价');
title('碳交易总量');
legend('碳交易总量','市场电价');for i=1:24op_h_load(i)=Hfix(i)+Hcut(i)+HHshift(i)-HHcut(i);
end
x=1:24;
figure
bar(h_load,'r');
hold on
plot(op_h_load,'g-*','linewidth',2);
xlabel('时间/h');
ylabel('热负荷/kW');
title('需求响应前后热负荷曲线');
legend('优化前热负荷','优化后热负荷');figure
bar(h_load-op_h_load,'r');
hold on
xlabel('时间/h');
ylabel('热负荷/kW');
yyaxis right
plot(buy_price,'g--*','linewidth',2);
xlabel('时间/h');
ylabel('电价');
title('需求响应前后热负荷曲线');
legend('响应热负荷','市场电价');

完整代码

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

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

相关文章

Java中SpringBoot组件集成接入【MQTT中间件】

Java中SpringBoot组件集成接入【MQTT中间件】 1.MQTT介绍2.搭建MQTT服务器1.Windows2.Ubuntu3.Docker4.其他方式3.mqtt可视化客户端MQTTX及快速使用教程4.SpringBoot接入MQTT1、maven依赖2、MQTT配置3、MQTT组件具体代码1.定义通道名字2.消息发布器3.MQTT配置、生产者、消费者4…

算法回忆录——排序

文章目录 1. 插入排序2. 选择排序3. 冒泡排序4. 希尔排序5. 归并排序6. 快速排序7. 堆排序8. 计数排序9. 桶排序10. 基数排序 1. 插入排序 分为两个序列&#xff0c;前面一个序列是排好序的&#xff0c;后面一个序列是未排好的。未排好的序列的第一个元素&#xff08;a&#x…

Vmware安装Windows11系统及下载MySQL步骤(超详细)

一、创建虚拟机 ①选择自定义 ②直接点击下一步 ③选择Windows 11 x64 ④命名虚拟机以及选择路径 ⑤新版本的虚拟机需要加密&#xff08;密码需要8个字符以上&#xff09; ⑥选择UEFI ⑦处理器配置&#xff08;根据自己的需求&#xff09; ⑧设置虚拟机的内存 ⑨选择不使用网络…

Linux安装JDK和Maven并配置环境变量

文章目录 一、安装JDK并配置环境变量二、安装maven并配置环境变量 一、安装JDK并配置环境变量 将JDK的安装包上传到Linux系统的usr/local目录 使用xftp上传文件 解压JDK的压缩包 xshell连接到云主机 [roottheo ~]# cd /usr/local[roottheo local]# ls aegis apache-tomcat-…

【Docker基础三】Docker安装Redis

下载镜像 根据自己需要下载指定版本镜像&#xff0c;所有版本看这&#xff1a;Index of /releases/ (redis.io) 或 https://hub.docker.com/_/redis # 下载指定版本redis镜像 docker pull redis:7.2.0 # 查看镜像是否下载成功 docker images 创建挂载目录 # 宿主机上创建挂…

2024年跨境电商上半年营销日历,建议收藏

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

Wrk压测发送Post请求的正确姿势

一、Wrk简介 wrk 是一个能够在单个多核 CPU 上产生显著负载的现代 HTTP 基准测试工具。它采用了多线程设计&#xff0c;并使用了像 epoll 和 kqueue 这样的可扩展事件通知机制。此外&#xff0c;用户可以指定 LuaJIT 脚本来完成 HTTP 请求生成、响应处理和自定义报告等功能。 …

OpenAI ChatGPT-4开发笔记2024-03:Chat之Tool和Tool_Call(含前function call)

Updates on Function Calling were a major highlight at OpenAI DevDay. In another world,原来的function call都不再正常工作了&#xff0c;必须全部重写。 function和function call全部由tool和tool_choice取代。2023年11月之前关于function call的代码都准备翘翘。 干嘛…

CSS 实现两个圆圈重叠部分颜色不同

这是期望实现的效果&#xff0c;由图可知&#xff0c;圆圈底图透明度是0.4&#xff0c;左侧要求重叠部分透明度是0.7&#xff0c;所以不能通过简单的透明度叠加来实现最右侧的效果。 这就需要另外新建一个图层来叠加在两个圆圈重叠上方。 直接看代码 .circle_hight {width: 1…

MySQL深入——9

如何正确的显示随机信息&#xff1f; 我们来模拟在英语单词app当中随机出现三个英语单词的情况&#xff0c;我们首先创建一张表words&#xff0c;然后给这个表当中插入10000条信息进行量化。 select word from words order by rand() limit 3&#xff1b; order by rand&…

外包做了1个月,技术退步一大半了。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

一种DevOpts的实现方式:基于gitlab的CICD(二)

写在之前 前文已经搭建了基于gitlab的cicd环境&#xff0c;现在我们来更近一步&#xff0c;结合官网给出的案例来详细介绍如何一步一步实现CI的过程。 基于gitlab搭建一个前端静态页面 环境依赖&#xff1a; gitlabgitlab runner&#xff08;docker版本&#xff09; 环境达吉…

FineBI:简介

1 介绍 FineBI 是帆软软件有限公司推出的一款商业智能&#xff08;Business Intelligence&#xff09;产品。 FineBI 是定位于自助大数据分析的 BI 工具&#xff0c;能够帮助企业的业务人员和数据分析师&#xff0c;开展以问题导向的探索式分析。 2 现阶段数据分析弊端 现阶…

【C/C++】轻量级跨平台 开源串口库 CSerialPort

文章目录 1、简介2、支持的平台3、已经支持的功能4、Linux下使用5、使用vcpkg安装CSerialPort6、交叉编译7、效果图8、基于CSerialPort的应用8.1、CommMaster通信大师8.2、CommLite串口调试器 1、简介 Qt 的QSerialPort 已经是跨平台的解决方案&#xff0c;但Qt开发后端需要 Q…

UE5 将类修改目录

有个需求&#xff0c;需要修改ue里面类的位置&#xff0c;默认在Public类下面&#xff0c;我想创建一个二级目录&#xff0c;将所有的类分好位置&#xff0c;方便查看。 上图为创建一个类所在的默认位置。 接下来&#xff0c;将其移动到一个新的目录中。 首先在资源管理器中找…

Redis高级特性和应用(发布 订阅、Stream)

发布和订阅 Redis提供了基于“发布/订阅”模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道( channel)发布消息,订阅该频道的每个客户端都可以收到该消息。 操作命令 Redis主要提供了发布消息、订阅频道、取消订阅以及按照模式订阅和…

HarmonyOS应用开发者基础认证考试

判断题 1.Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(True) 2.所有使用Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 错误(False) 3.每调用一次router.pushUrl()方法,…

HarmonyOS 应用开发学习笔记 ets组件生命周期

HarmoryOS Ability页面的生命周期 Component自定义组件 ets组件生命周期官放文档 本文讲解 ets组件的生命周期&#xff0c;在此之前大家可以先去了解Ability的生命周期&#xff0c;这两个生命周期有有一定的关联性 在开始之前&#xff0c;我们先明确自定义组件和页面的关系&…

第一个Java网络爬虫程序

目录 前言第一个Java网络爬虫程序总结 前言 网络爬虫是一种获取互联网信息的技术&#xff0c;它可以模拟浏览器行为&#xff0c;访问网站并提取所需的数据。在这个小Demo中&#xff0c;我们使用Java语言结合HttpClient库实现了一个简单的爬虫程序&#xff0c;用于抓取汽车之家…

springCould中的gateway-从小白开始【9】

目录 1.&#x1f35f;网关是什么 2.&#x1f37f;gateway是什么 3.&#x1f95a;gateway能什么 4.&#x1f32d;核心概念 5.&#x1f9c2;工作流程 6.&#x1f9c8;实例 7.&#x1f953;gateway网关配置的方式 8.&#x1f373;配置动态路由 9.&#x1f9c7;pred…