基于纳什博弈的多微网主体电热双层共享策略(matlab代码)

news2024/10/7 10:21:05

目录

​1 主要内容

2 部分代码

3 程序结果

4 下载链接


​1 主要内容

该程序复现《Multi-Micro-Grid Main Body Electric Heating Double-Layer Sharing Strategy Based on Nash Game》模型,主要做的是构建基于纳什博弈的多微网主体电热双层共享模型,将其分解为收益最大化子问题和收益再分配子问题。在收益最大化子问题中,考虑含碳配额和阶梯碳交易的运行成本最低为目标,采用交替方向乘子法进行分布式求解以保护隐私;在收益再分配子问题中,通过构建分时段、分能源类型的非对称能量映射贡献度函 数,实现收益合理再分配。下载链接包括中文版文献资料和代码,注释清晰,方便学习!

  • 多微网主体P2P电热双层模型

图中,不同颜色线条代表不同的能源形式,图例中依次代表电能流、热能流、数据流、配网电能流、天然气能流,各个微网主体即可实现内部能量交互和供给,也可通过外部联络实现各个主体间的能量交互。

基于低碳改造的微网独立运行模型

其对应的中文版本图如下:

本文研究考虑热电联产的电热气多能流协同的微网,由于微网中热电机组运行会产生大量二氧化碳,不符合低碳要求,因此本文对其进行低碳改造。引入了烟气分流、储液式碳捕集 与存储和甲烷化装置等,完成 P2G 的三个阶段改造,并考虑与外界电网、气网交互和微网间能源共享,形成引入P2G 和能源共享的低碳微网架构。

ADMM算法求解纳什均衡解

纳什博弈是一种合作博弈,常用于应对市场竞争,它是寻求最优策略的方法,
当每个博弈者的平衡策略都达到了自己期望收益的最大值时,其选择的策略是最优的,那么这个组合就被定义为纳什均衡,也被称为最优策略。因此,其标准形式是乘积的最大值作为均衡解。但是,在实际模型应用中,模型非线性导致无法直接求解, 因此需要借助于分布式算法,本文采用的即是ADMM算法,具体步骤为:

该ADMM算法是常规算法,再此不再赘述。
  • 文章亮点
简单来说,本文的亮点在于引入三阶段低碳化改造模型,这个不是简单的一部分的创新,这种细化设置提升了整个模型的深度,大家可以注意一下近几年的文章,模型细化创新逐步在赶超方法应用创新,对方法创新没有思路的同学可以考虑转型该方向,对整个能量流过程的深入思考同样可以成为核心竞争力。

部分代码

C=[];       
%微网的电/热负荷需求响应部分            
for t=1:24               
    C=[C,                     
       L_e(t)==L_e0(t)-P_e_cut(t)-P_e_tran(t), %微网的电负荷功率平衡约束                
       L_h(t)==L_h0(t)-P_h_DR(t), %微网的热负荷功率平衡约束            
       0 <=P_e_cut(t)<= 0.05*L_e0(t), %微网的可削减电功率上下限约束               
       -0.1*L_e0(t)<=P_e_tran(t) <= 0.1*L_e0(t), %微网的可转移电功率上下限约束              
       -0.1*L_h0(t)<=P_h_DR(t)<=0.1*L_h0(t), %微网的可削减热功率上下限约束                
      ];
end
C=[C,sum(P_e_tran)==0,]; %转移的电负荷总量为0约束  
C=[C,sum(P_h_DR  )==0,]; %转移的热负荷总量为0约束  
%微网的储电设备约束部分             
%储能电站荷电状态连续性约束               
C=[C,E_bat(1)== 1000+0.95*P_batc(1)-P_batd(1)/0.96,]; %1时段约束           
for t=2:24          
    C=[C,E_bat(t)==E_bat(t-1)+0.95*P_batc(t)-P_batd(t)/0.96,]; %储电设备容量变化约束              
end               
%储能容量大小约束
for t=1:24
    C=[C,500<=E_bat(t)<=2500,];  %储电量上下限约束
end
%始末状态守恒
C=[C,E_bat(24)==1000,];
%储能电站的充放电功率约束,Big-M法进行线性化处理
M=1000; %这里的M是个很大的数
for t=1:24
    C=[C,
       0<=P_batc(t)<=400,
       0<=P_batc(t)<=U_abs(t)*M,     
       0<=P_batd(t)<=400,      
       0<=P_batd(t)<=U_relea(t)*M,
       U_abs(t)+U_relea(t)<=1,
      ];
end
%带P2G和CCS的CHP运行约束         
C=[C,       
    0-P_e3-P_e2<=P_e1<=6000-P_e3-P_e2 , %CHP的供电功率约束
    0<=P_e2,P_e2<=1200, %CCS设备的耗电功率约束
    0<=P_e3,P_e3<=1500, %P2G设备的耗电功率约束
    0<=P_e1,P_e1<=6000, %CHP的供电功率上下限约束,公式(11)    
    0<=P_e1, %CHP的供电功率非负性约束
    max((0-0.15*P_h-P_e3-P_e2),(0.85*(P_h)-P_e3-P_e2))<=P_e1<=6000-0.20*P_h-P_e3-P_e2, %CHP的热电耦合约束    式(13)
    max((0-0.15*P_h),(0.85*(P_h-50)-600-1200))<=P_e1<=6000-0.20*P_h-0-0, %考虑P2G和CCS后的CHP的热电耦合约束       式(15)
    (0.55/(1+0.5*1.02))*max((0-0.15*P_h-P_e1),(0.85*(P_h-50)-P_e1))<=P_gs<=(0.55/(1+0.5*1.02))*(6000-0.20*P_h-P_e1), %产气功率上下限约束  式(17)
    -1000<=(P_e1(2:24)+P_e3(2:24)+P_e2(2:24))-(P_e1(1:23)+P_e3(1:23)+P_e2(1:23))<=1000, %CHP的爬坡约束   
    P_h_GT == P_h;
    P_gs==0.55*P_e3, %P2G产气功率与耗电量约束  式(2)
    C_ccs==P_e2/0.55, %CCS的耗电量与碳捕集量约束   式(4)
    C_p2g==1.02*P_e3, %P2G运行所需要的二氧化碳量与电功率约束  式(3)

程序结果

4 下载链接

见下方联系方式 

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

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

相关文章

如何修改百科内容?百度百科内容怎么修改?

百科词条创建上去是相当不易的&#xff0c;同时修改也是如此&#xff0c;一般情况下&#xff0c;百科词条是不需要修改的&#xff0c;但是很多时候企业或是人物在近期收获了更多成就或是有更多的变动&#xff0c;这个时候就需要补充维护词条了&#xff0c;如何修改百科内容&…

springcloud学生选课系统源码

开发技术&#xff1a; jdk1.8&#xff0c;mysql5.7&#xff0c;idea&#xff0c;nodejs&#xff0c;vscode springcloud springboot mybatis vue elementui 功能介绍&#xff1a; 学生&#xff1a; 登录&#xff0c;统计分析&#xff0c;选课&#xff08;查看课程及选择&a…

Lifecyle的原理

1、Lifecycle是典型的观察者模式&#xff0c;被观察者的继承关系如上图所示。 2、LifeCycleRegistry是Lifecycle的子类。 3、观察者通过LifeCycle对象的addObserver注册监听生命周期的变化&#xff0c;通过removeObserver移除监听生命周期的变化。 4、Activity或Fragment的生命…

CMake 判断操作系统类型

上回的CMakeLists.txt里面有一句,if (WIN32)......endif(WIN32); 根据资料,这是判断操作系统是否是Windows; 下面单独看一下; 一个CMakeLists.txt文件如下; if(WIN32)# 如果是 Windowsmessage("当前操作系统为 Windows") elseif(UNIX AND NOT APPLE)# 如果…

2023最新软件测试面试1000问答案解析(含文档)

1、自动化代码中,用到了哪些设计模式? 单例设计模式工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果&#xff0c;如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化…

一个快递包裹的跨国之旅

事情要从今年三月份说起&#xff0c;一位爱尔兰的同事在6月份结婚&#xff0c;团队同事准备了中国风的丝绸画轴、领带、丝巾作为礼物。3月份开始邮寄&#xff0c;4月初爱尔兰方面收件&#xff0c;5月份因为文件不足、不完整、不正确等原因被取消进口&#xff0c;7月份退回到大连…

PACS系统源码,WORKLIST数字化工作流程,影像数字化存储,电子报告书写、胶片打印

PACS系统源码 可与医院HIS、LIS无缝连接 PACS系统以实现医学影像数字化存储、诊断为核心任务&#xff0c;从医学影像设备&#xff08;如CT、CR、DR、MR、DSA、RF等&#xff09;获取影像&#xff0c;集中存储、综合管理医学影像及病人相关信息&#xff0c;建立数字化工作流程。 …

JOSEF约瑟 数显电压继电器 HYJY-30-02 AC220V 导轨安装

HYJY系列电压继电器 HYJY-30-01集成电路电压继电器 HYJY-30-01A HYJY-30-01B HYJY-30-02集成电路电压继电器 HYJY-30-02A HYJY-30-02B HYJY-30-03-3集成电路电压继电器 HYJY-30-03-2 HYJY-30-03-1 HYJY-30-02电压继电器&#xff08;以下简称继电器&#xff09;用于发…

[C++] STL_stack queue接口的模拟实现

文章目录 1、stack1.1 stack的介绍1.2.1 stack的构造1.2.2 进、出栈等接口的模拟实现 2、queue2.1 queue的介绍2.2 queue的使用2.2.1 queue构造2.2.2 入、出队等接口的模拟实现 1、stack 1.1 stack的介绍 stack的文档介绍 1. stack是一种容器适配器&#xff0c;专门用在具有…

使用jmeter对接口进行简单测试

JMeter是一个开源的性能测试工具&#xff0c;它可以对于Web应用程序、FTP、数据库服务器等各种服务器进行性能测试和负载测试&#xff0c;以确定它们是否能够承受预期的负载。JMeter支持多种协议和技术&#xff0c;如HTTP、HTTPS、FTP、JDBC、LDAP、SOAP、JMS等。它使用Java编写…

GCANet

2019、中科大港科、有代码 Chen D, He M, Fan Q, et al. Gated context aggregation network for image dehazing and deraining[C]//2019 IEEE winter conference on applications of computer vision (WACV). IEEE, 2019: 1375-1383. GitHub - cddlyf/GCANet: Implementation…

数据库系统原理与实践 笔记 #9

文章目录 数据库系统原理与实践 笔记 #9存储管理与索引文件和记录的组织文件组织定长记录变长记录分槽的页结构文件中记录的组织顺序文件组织多表聚簇文件组织 数据库系统原理与实践 笔记 #9 存储管理与索引 文件和记录的组织 文件组织 数据库是以一系列文件的形式存储的。…

day29_Servlet

今日内容 零、 复习昨日 一、Servlet 零、 复习昨日 一、Servlet 1.1 Servlet介绍 javaweb开发,就是需要服务器接收前端发送的请求,以及请求中的数据,经过处理(jdbc操作),然后向浏览器做出响应. 我们要想在服务器中写java代码来接收请求,做出响应,我们的java代码就得遵循tomca…

图像分类(三) 全面解读复现VGGNet

解读一 Abstract-摘要 翻译 在这项工作中&#xff0c;我们研究了卷积网络深度在大规模图像识别环境下对其精度的影响。我们的主要贡献是使用具有非常小(33)卷积滤波器的体系结构对增加深度的网络进行了彻底的评估&#xff0c;这表明通过将深度推进到16-19个权重层&#xff0…

报错注入 [极客大挑战 2019]HardSQL1

打开题目 输入1或者1"&#xff0c;页面均回显NO,Wrong username password&#xff01;&#xff01;&#xff01; 那我们输入1 试试万能密码 1 or 11 # 输入1 and 12 # 输入1 union select 1,2,3 # 输入1 ununionion seselectlect 1,2,3 # 输入1 # 输入1# 页面依旧回…

php字符串处理函数的使用

php字符串处理函数的使用 trim() trim()函数的功能用于去除字符串首尾的空白字符(包括空格、制表符、换行符等&#xff09;。它可以用于清理用户输入的数据或去除字符串中的多余空格。 <?php $char" holle world! ";echo trim($char) ?>str_repl…

IvorySQL3.0:基于PG16.0最新内核,实现兼容Oracle数据库再升级

Oracle作为全球最大的数据库厂商之一&#xff0c;具有较高的市场知名度和份额。但随着数据处理需求日益增长&#xff0c;使用Oracle的企业可能面临一些挑战&#xff0c;如数据库复杂性、高昂维护成本、数据迁移和集成问题等&#xff0c;难以满足企业实时数据处理需求&#xff0…

C++11新特性 变参模板、完美转发和emplace

#include <iostream> #include <vector> #include <deque> #include <list> #include <algorithm> using namespace std;class student { public:student() {cout << "无参构造函数被调用!" << endl;}student(int age, st…

如何使用rclone将腾讯云COS桶中的数据同步到华为云OBS

在多云策略与数据迁移趋势下&#xff0c;企业往往需要将数据在不同云服务提供商之间进行迁移。本文介绍如何使用rclone工具同步腾讯云COS&#xff08;Cloud Object Storage&#xff09;桶中的数据到华为云OBS&#xff08;Object Storage Service&#xff09;。先决条件是您已经…

【MATLAB基础绘图第17棒】绘制玫瑰图

MATLAB绘制玫瑰图 玫瑰图&#xff08;Nightingale Rose Chart&#xff09;风玫瑰图&#xff08;WindRose&#xff09;准备工作&#xff1a;WindRose工具包下载案例案例1&#xff1a;基础绘图 参考 玫瑰图&#xff08;Nightingale Rose Chart&#xff09; 玫瑰图&#xff08;Ni…