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

适用平台: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.mzph.cn/news/719057.shtml

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

相关文章

真不愧是华为出来的,真的太厉害了。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 实习去了博彦科技&#xff08;外包&#xff09;&#xff0c;做的就是螺丝钉的活&#xff0c;后面…

华为---MSTP(一)---MSTP生成树协议

目录 1. MSTP技术产生背景 2. STP/RSTP的缺陷 ​编辑 2.1 无法均衡流量负载 2.2 数据使用次优路径 3. MSTP生成树协议 3.1 MSTP相关概念 3.2 MSTP树生成的形成过程 4. MSTP报文 1. MSTP技术产生背景 RSTP在STP基础上进行了改进&#xff0c;实现了网络拓扑快速收敛。但…

SpringBoot+Maven项目打包

项目的主POM文件里面添加maven打包插件 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><sour…

推荐一款新的自动化测试框架:DrissionPage

今天给大家推荐一款基于Python的网页自动化工具&#xff1a;DrissionPage。这款工具既能控制浏览器&#xff0c;也能收发数据包&#xff0c;甚至能把两者合而为一&#xff0c;简单来说&#xff1a;集合了WEB浏览器自动化的便利性和 requests 的高效率优点。 一、DrissionPage框…

【C++庖丁解牛】默认成员函数

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 前言1. 构造函数1.1 …

职场高薪 |「中高级测试」面试题

【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程&#xff0c;一周学完让你面试通过率提高90%&#xff01;&#xff08;自动化测试&#xff09; 一.基础题 1.测试用例你一般是怎么设计的&#xff0c;怎么可以提高覆盖率&#xff1f; 有没有形成自己的 一套方法论…

Jmeter接口测试---随机数、加密、cookie鉴权、断言、CSV参数化

随机数 第一步&#xff1a;选择工具-函数助手对话框 第二步&#xff1a;选择random&#xff0c;设置最大值最小值&#xff0c;复制函数字符串到指定位置 加密接口 类型&#xff1a;AES、DES、Base64、RSA&#xff08;可以解密&#xff09; | MD5、SHA、HmacSHA&#xff08;不…

llama.c代码2

1、forward 1.1、复习 encode(tokenizer, prompt, 1, 0, prompt_tokens, &num_prompt_tokens); 在encode函数结尾处(gdb) p *n_tokens $3 2(gdb) p *tokens3 $6 {1, 22172, 417} 在encode调用后 (gdb) print num_prompt_tokens $11 2 (gdb) print *prompt_tokens3 $13 …

JavaScript 中的类型转换机制(详细讲解)

文章目录 一、概述二、显示转换Number()parseInt()String()Boolean() 三、隐式转换自动转换为布尔值自动转换成字符串自动转换成数值 一、概述 前面我们讲到&#xff0c;JS中有六种简单数据类型&#xff1a;undefined、null、boolean、string、number、symbol&#xff0c;以及…

(sub)三次握手四次挥手

TCP的三次握手与四次挥手理解及面试题 序列号seq&#xff1a;占4个字节&#xff0c;用来标记数据段的顺序&#xff0c;TCP把连接中发送的所有数据字节都编上一个序号&#xff0c;第一个字节的编号由本地随机产生&#xff1b;给字节编上序号后&#xff0c;就给每一个报文段指派一…

(学习日记)2024.03.03:UCOSIII第五节:常用汇编指令+OS初始化+启动任务+任务切换

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

双重检验锁

双重检验锁&#xff1a;设计模式中的单例模式&#xff0c;细分为单例模式中的懒加载模式。 单例模式 单例模式&#xff1a;指的是一个类只有一个对象。最简单的实现方式是设一个枚举类&#xff0c;只有一个对象。缺点是当对象还没有被使用时&#xff0c;对象就已经创建存在了…

【扩散模型】生成模型中的Residual Self-Attention UNet 以及 DDPM的pytorch代码

参考&#xff1a; [1] https://github.com/xiaohu2015/nngen/blob/main/models/diffusion_models/ddpm_cifar10.ipynb [2] https://www.bilibili.com/video/BV1we4y1H7gG/?spm_id_from333.337.search-card.all.click&vd_source9e9b4b6471a6e98c3e756ce7f41eb134 TOC 1 UNe…

视黄酸诱导基因-1敲除诱导树突状细胞的不成熟特性并延长异体移植小鼠的存活时间研究【AbMole】

器官移植是一种用于替换因疾病、损伤或其他原因受损的人体器官的医疗程序。尽管器官移植可以挽救生命并显著提高生活质量&#xff0c;但存在供体器官短缺、排斥反应、器官功能障碍、感染和药物副作用等问题。为了提高移植成功率和受体健康&#xff0c;需要有效的免疫策略。树突…

如何使用支付宝沙箱环境本地配置模拟支付并实现公网远程访问【内网穿透】

文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问 前言 在沙箱环境调试支付SDK的时候&#xff0c;往往沙箱环境部署在本地&#xff0c;局限性大&#xff0c;在沙箱环境…

数据可视化原理-腾讯-3D网格热力图

在做数据分析类的产品功能设计时&#xff0c;经常用到可视化方式&#xff0c;挖掘数据价值&#xff0c;表达数据的内在规律与特征展示给客户。 可是作为一个产品经理&#xff0c;&#xff08;1&#xff09;如果不能够掌握各类可视化图形的含义&#xff0c;就不知道哪类数据该用…

壁炉火焰温和而宁静,警惕火焰凶猛的潜在危害

在寒冷的冬夜&#xff0c;壁炉散发的温暖和闪烁的火焰成为家庭的心灵港湾。然而&#xff0c;我们在享受壁炉带来的温馨时&#xff0c;有时候也要关注火焰的凶猛度&#xff0c;因为它可能引发一系列潜在危害。 首先&#xff0c;壁炉的火焰过于凶猛可能导致空气质量下降。当火焰过…

从零开始手写RPC框架(4)

这一节主要讲述网络传输模块的代码&#xff0c;并且几乎每一行代码都加上了我个人理解的注释&#xff0c;同时也讲述了其中一些以前没见过的函数&#xff0c;和大致的底层运行逻辑。 目录 网络传输实体类网络传输实现基于Socket实现网络传输基于Netty实现网络传输客户端服务端 …

【JavaEE进阶】 Linux常用命令

文章目录 &#x1f343;前言&#x1f334;ls 与 pwd&#x1f6a9;ls&#x1f6a9;pwd &#x1f38d;cd&#x1f6a9;认识Linux目录结构 &#x1f340;touch与cat&#x1f6a9;touch&#x1f6a9;cat &#x1f332;mkdir与rm&#x1f6a9;mkdir&#x1f6a9;rm &#x1f384;cp与…

Java基础 - 7 - 常用API(二)

API&#xff08;全称 Application Programming Interface&#xff1a;应用程序编程接口&#xff09; API就是Java帮我们已经写好的一些程序&#xff0c;如类、方法等&#xff0c;可以直接拿过来用 JDK8 API文档&#xff1a;Java Platform SE 8 一. Object Object类的作用 Ob…