基于信息间隙决策理论的碳捕集电厂优化调度程序代码!

2024-03-04 15:04

本文主要是介绍基于信息间隙决策理论的碳捕集电厂优化调度程序代码!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

适用平台:Matlab+Yalmip+Cplex

程序在建立电厂与碳捕集装置协同调度模型的基础上,引入信息间隙决策理论(information gap decision theory, IGDT)以同时满足系统的鲁棒性和经济性要求,通过风险追求和风险规避2种决策角度得到不同的调度方案。程序算例丰富、注释清晰、干货满满,可扩展性和创新性很高!码超所值!下面对文章和程序做简要介绍!

程序创新点:

1)将该系统在不确定性下的调度分为机会模型( opportuneness model, OM )和鲁棒模型(robustness model, RM)2种,前者偏投机,后者偏向保守。

2)在进行调度优化时,研究者需考虑负荷的不确定性并对调度方案进行决策指导。这里采用IGDT方法优化负荷的不确定性。

主要工作:

作为目前最有潜力的大规模商业化减碳手段之一,基于化学溶剂吸收的燃烧后碳捕集技术有望实现化石能源的清洁使用。在燃煤火电厂动态运行的基础上耦合碳捕集系统对于推动“碳中和”进程具有重要意义。但是,大多数研究没有考虑诸如用电价格波动和用电量的变化等因素对耦合碳捕集系统的电厂的影响。为此,该文在建立电厂与碳捕集装置协同调度模型的 基础上,引入信息间隙决策理论(information gap decision theory,IGDT)以同时满足系统的鲁棒性和经济性要求,通过风险追求和风险规避2种决策角度得到不同的调度方案,为系统的动态运行提供指导性意见。该文首先构建了确定性电厂与碳捕集装置耦合调度模型;其次,针对实时市场中负荷需求的不确定性,通过引入信息间隙决策理论,得到不同风险态度下的不确定性电厂与碳捕集装置耦合调度模型,优化确定系统调度的决策方案。

主要框架:

1. 信息间隙理论-IGDT

IGDT是处理非概率不确定性的决策方法。常用的随机规划方法难以优化此类无法用概率或场景表示的不确定性。同时,因模型设置了预期成本或利润指标,在优化中可同时保证系统鲁棒性和基本经济性,优于传统的鲁棒优化方法。不同于鲁棒优化精确的上下限范围集合,

IGDT的不确定因素输入为一个不精确的集合,并通过一些非概率模型的不确定集描述不确定性如包络模型、分数不确定性模型和椭球模型等。

2. 基于风险追求的机会IGDT调度模型

机会IGDT模型认为实时市场电力负荷的不确定性可使调度朝经济有利的方向发展。在风险追求调度决策下,不确定性调度模型的目标是最小化不确定度,即要保证在负荷波动幅度内的系统日利润要大于期望利润,且尽可能降低追求不确定性带来的风险,从而获得更大的收益。因此,建立了基于风险追求的机会IGDT碳捕集电厂调度模型,表示如下:

上式为双层规划模型,下层的目标函数通过风险追求调度决策优化使利润最大化,在该模型中实时负荷需求限制在不确定集内;上层的目标函数为最小化负荷的不确定度。其中:εm为机会偏差因子,DPOM为机会收益阈值,DP0为确定性碳捕集电厂调度模型(或称为风险中性模型,neutral model,NM)的最优值,该确定性模型是基于不确定性的预测值构建的。决策方案的机会性使得下层模型的目标利润大于DP0,因此εm的取值为[0,1),且与决策对风险追求的程度呈正比。对于碳捕集电厂而言,考虑负荷的调度方案与以电价为导向的调度方案相比,其日利润有所下降。此时,风险追求调度决策下负荷需求约束越小,越能获得收益。对于上式来说,当实时负荷需求取值为不确定集的下限λELt=λELt(1-α)时,下层模型的日利润能达到最大值, 因而可将双层规划模型转化为下述单层优化模型:

3. 基于风险规避的鲁棒IGDT调度模型

鲁棒IGDT模型认为负荷的不确定性会影响系统调度结果。在风险规避调度决策下,碳捕集电厂希望在保证基本的经济性的前提下实现鲁棒性最优,即求得不确定参数波动的极限值使得碳捕集电厂的日利润能够满足期望值,因此建立的基于风险规避的鲁棒IGDT碳捕集电厂调度模型为:

其中:δm为鲁棒偏差因子,DPRM为鲁棒收益阈值.同理,δm的取值范围为[0,1),且与决策对风险的规避程度呈正比。同时,对于上式来说,当实时负荷需求为λELt=λELt(1+α)时,即为不确定集的上界时。下层模型能取得最小值。同理。可将上式转化为:

程序结果:

1. 基于风险追求的机会IGDT 调度模型

2. 基于风险规避的鲁棒IGDT 调度模型


部分程序:

%%  定义信息间隙决策理论增加变量
HeatLoad=sdpvar(1,24);%实际热负荷​EleLoad=sdpvar(1,24);%实际电负荷
P_v_pre=sdpvar(1,24);%实际光伏​P_w_pre=sdpvar(1,24);%实际风电
gasLoad=sdpvar(1,24);%实际气负荷​C_CO2=sdpvar(1,1);%碳交易成本
% 购电
state=binvar(1,24,'full'); % 判断是否售电,1购电,0不购电
​P_buy = sdpvar(1,24,'full'); % 购电功率
% 燃气轮机​
GT_Q = sdpvar(1,24,'full'); % 燃气轮机的产热量
C_GT= sdpvar(1,24,'full'); % 燃气轮机碳排放
% 燃气锅炉
GB_G = sdpvar(1,24,'full'); % 燃气锅炉气耗量
GB_Q = sdpvar(1,24,'full'); % 燃气轮机的产热量
% 电锅炉
EB= sdpvar(1,24,'full');​EB_Q= sdpvar(1,24,'full');
EB_Qin=sdpvar(1,24,'full'); % 电锅炉供给CSP的热量
EB_Qload= sdpvar(1,24,'full');
% 储气装置
GS_S = sdpvar(1,24,'full'); %储气罐的储热量​GS_Qout = sdpvar(1,24,'full'); %储气罐的放热功率
% 电储能储装置
PS_S = sdpvar(1,24,'full'); ​PS_Qout = sdpvar(1,24,'full');
% 购气
Gas = sdpvar(1,24,'full'); % 购买的天然气量​P2G= sdpvar(1,24,'full'); % 电转气
G_P2G= sdpvar(1,24,'full'); % 电转气
% 光热​
CSP_S=sdpvar(1,24,'full'); % CSP中的储热罐的储热量​CSP_Qin=sdpvar(1,24,'full'); % CSP中的储热罐充热功率
CSP_Qout=sdpvar(1,24,'full'); % CSP的储热罐放热功率CSP_SU=sdpvar(1,24,'full'); % CSP用于启动汽轮机的热量​
% 碳捕集
CCS=sdpvar(1,24,'full'); %  碳捕集量​P_CCS=sdpvar(1,24,'full'); % 碳捕集能耗
CCS_P2G=sdpvar(1,24,'full'); % 供给P2G​CCS_S_in=sdpvar(1,24,'full'); % 储碳
CCS_S_out=sdpvar(1,24,'full'); % 放碳​
%% 碳捕集​​CCS(t)<=0.98*C_GT(t),P_CCS(t)==0.26*CCS(t)+3,CCS(t)==CCS_P2G(t)+CCS_S_in(t),​G_P2G(t)==2*(CCS_P2G(t)+CCS_S_out(t)),20<=CCS_S(t)<=150,CCS_S_lamda(t)*150*0.3>=CCS_S_out(t)>=0,​
%% 光热电站​%热量传递约束
Qsf(t)==CSP_Qin(t)-CSP_Qout(t)+CSP_SU(t)+CSP_Gen(t),​%% IGDT新增约束​
​HeatLoad(t)==(1-0.2*alfa)*HeatLoads(t),%热负荷鲁棒区间约束
​EleLoad(t)==(1-0.3*alfa)*EleLoads(t),%电负荷鲁棒区间约束
​P_v_pre(t)==(1+0.1)*P_v_pres(t),%光伏鲁棒区间约束
​P_w_pre(t)==(1+0.1)*P_w_pres(t),%风电鲁棒区间约束
​​gasLoad(t)==(1-0.3*alfa)*gasLoads(t),%气负荷鲁棒区间约];
%% 不确定性系数加权,各取0.2(此概率可自行设置,加一起等于1即可)​P_yun==sum(gamma_gas.*Gas)+sum(0.1*PV_P)+sum(0.1*WP_P)+sum(0.1*GT_P)+sum(0.1*GB_Q)+sum(gamma_buy.*(P_buy+P2G))+sum(0.1*CSP_GenP),C_CO2==0.5*(0.35*sum(GB_Q)+sum(C_GT)+1.08*sum(P_buy)-sum(G_P2G)),​cost<=29898.4065*(1-0.13),%设置目标函数约束,0.3为偏差系数,不过取的过小,否则容易无解;​   

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴点关注并私信获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

这篇关于基于信息间隙决策理论的碳捕集电厂优化调度程序代码!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773556

相关文章

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法

《Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法》在Linux系统中,管理磁盘设备和分区是日常运维工作的重要部分,而lsblk命令是一个强大的工具,它用于列出系统中的块设备(blockde... 目录1. 查看所有磁盘的物理信息方法 1:使用 lsblk(推荐)方法 2:使用 fdisk -l(

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

springboot实现配置文件关键信息加解密

《springboot实现配置文件关键信息加解密》在项目配置文件中常常会配置如数据库连接信息,redis连接信息等,连接密码明文配置在配置文件中会很不安全,所以本文就来聊聊如何使用springboot... 目录前言方案实践1、第一种方案2、第二种方案前言在项目配置文件中常常会配置如数据库连接信息、Red

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取