基于主从博弈理论的共享储能与综合能源微网优化运行研究-论文复现——附代码

本文主要是介绍基于主从博弈理论的共享储能与综合能源微网优化运行研究-论文复现——附代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

摘要:

1 社区型综合能源微网框架

2 基于主从博弈与共享储能的微网运营商定价模型及求解

3 模型求解方法与流程

 4 运行结果

5. 本文Matlab复现代码


摘要:

综合能源微网与共享储能在提高系统能源利用率方面具有显著效益,逐渐成为目前研究热点,如何建立一套共享储能背景下综合能源微网优化运行模型是当下亟待解决的问题。首先,本文介绍了系统运行框架,分析了系统内各利益体的功能。其次,分别针对微网运营商、共享储能服务商以及用户聚合商建立优化运行模型。进一步,分析了微网运营商与用户聚合商间的博弈关系,提出共享储能背景下微网运营商与用户聚合商间的Stackelberg博弈模型,并证明Stackelberg均衡解的存在性与唯一性。最后,在MATLAB平台上进行算例仿真,通过Yalmip工具与CPLEX求解器进行建模与求解,利用启发式算法与求解器相结合的方法优化微网运营商与用户聚合商的策略。结果表明,本文所提模型所提模型不仅能有效权衡微网运营商与用户聚合商的利益,也实现了用户聚合商与共享储能运营商的收益双赢,所采用的求解算法保护了微网运营商与用户聚合商间的数据隐私。

本文是对于”基于主从博弈理论的共享储能与综合能源微网优化运行研究”的基本复现

1 社区型综合能源微网框架

为了统一优化安排,将微网内分布式用户群等效为一个用户聚合商。假定社区型综合能源微网主要由微网运营商、用户聚合商以及共享储能运营商三个对象组成,具体场景如图 1 所示。

微网运营商作为电网与用户的中介,能与用户侧进行能源交易。从交易市场角度看:针对用户侧通过制定合理的售电价与售热价,与用户侧进行能源交易从中赚取差价;从物理层面看:微网运营商侧配有燃气轮机,为用户侧提供电能与热能。

假定共享储能运营商主要为用户聚合商提供储能服务,用于提高用户侧负荷调整的灵活性。共享储能运营商根据用户存储或取用的容量收取服务费用,所制定的单位容量租赁费用决定用户使用服务的积极性。用户侧负荷主要由电负荷与热负荷组成,每个用户都装有光伏装置。设定微网运营商制定的售电价比电网侧的售电价低,因此本文认为用户仅从微网运营商购电,统一向电网售电。

当用户所配置的光伏发电不能满足电负荷时,用户不仅能向微网运营商购电,也可从共享储能系统中取用电能;当用户侧光伏发电盈余时,用户可将盈余电能出售给电网,也可将其存储于共享储能系统。对于热负荷,一部分由微网运营商侧微燃机组提供,另一部分可由用户侧电制热设备供应。

本文模型下用户侧电能、热能选择来源不再单一,用能灵活水平更高。微网内各主体运营方式为:微网运营商根据次日电网分时电价日前制定合理的购电价与售电价,用户侧针对微网运营商提供的电价、热价与储能供应商提供的租赁费用,优化一天内电、热负荷分布,同时可通过使用共享储能服务提高自身收益。

2 基于主从博弈与共享储能的微网运营商定价模型及求解

微网运营商首先制定一天内的购电价与购热价策略集合,用户聚合商再根据微网运营商的定价方案与共享储能服务租赁费,实时调整每时段电、热负荷并合理规划共享储能服务的使用。微网运营商与用户聚合商间的交互变量为售电价、售热价、购电量以及购热量,当微网运营商的价格制定过高或过低时,用户聚合商将动态调整自身购电量与购热量;反之,微网运营商也会根据用户聚合商的购电量与购热量重新制定自身定价策略,直至寻找最优定价策略。显然,微网运营商与用户聚合商的收益冲突,且双方决策具有先后顺序,因此微网运营商与用户聚合商可视为一个主从博弈模型。该博弈G可表示为:

3 模型求解方法与流程

对于微网运营商(leader):目标函数为一天内收益最大,求解一天内最优电价与热价;对于用户聚合商(follower):目标函数为一天内收益最大,求解一天内最优柔性电负荷分布、热负荷消减量以及参与共享储能服务的电能。利用遗传算法初始化、更新上层微网运营商的售电价与购电价,下层问题直接用 CPLEX 求解器进行求解,具体求解流程如下

 4 运行结果

 

5. 本文Matlab复现代码

 

这篇关于基于主从博弈理论的共享储能与综合能源微网优化运行研究-论文复现——附代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪