基于非合作博弈的微电网容量优化配置——附Matlab代码

news2024/11/20 16:24:20

目录

文章摘要:

研究背景:

微电网结构:

基于非合作博弈的容量配置方法:

基于粒子群算法的求解方法:

程序运行结果:

Matlab代码+数据下载:


文章摘要:

微电网容量优化配置是提高能源应用效率,实现可再生能源充分消纳的重要手段。本文针对含有风电、光伏、储氢系统的微电网进行容量配置研究。首先,在程序设立了风电、光伏和制氢-储氢系统3个主体,以各主体各自的收益最大化为优化目标,建立了基于非合作博弈的微电网容量优化配置模型;然后,考虑各博弈参与者的投资成本、运维成本、购售电成本、弃风弃光惩罚费用和负荷中断惩罚费用等经济因素,利用粒子群算法对各博弈参与者的容量配置进行单独优化,确定各博弈参与者收益最大化的Nash均衡点;最后,通过某地区典型月的风速和光照强度数据对微电网容量配置进行算例分析。结果表明该模型能够在月综合成本相对较低的前提下保证供电的可靠性,实现了微电网系统容量的合理配置。

研究背景:

随着社会和经济的快速发展,能源需求也日益增加。石油、煤炭等传统化石能源从开采到利用,该类技术已经十分成熟,因其成本较低和供应稳定等优点而到了广泛的应用。然而,随着传统化石能源的使用量不断增加,石油、煤炭等传统化石能源出现资源短缺现象,而且对环境和气候产生了不良的影响,如大量的碳排放导致全球气候变暖,形成温室效应;还有大量氮氧化物的污染导致空气质量的下降。为了解决能源短缺和环境恶化的问题,清洁能源的开发和利用得到了社会和国家的认可。相较传统化石能源,太阳能、风能和水能对环境友好且开采无限制,故被称为可再生能源。可再生能源不仅满足社会需求,而且不会造成环境污染,因此十分符社会发展的规律,人与自然和谐共生。

在上述背景下,分布式电源得到了广泛应用和支持。分布式电源主要以“就地取材”为主,通过将分散的能源加以利用,为负荷供能供电。由于分布式电源对环境污染小、装机灵活,并且可以充分利用分散的可再生能源,因而得到广泛学者的研究,相关研究表明分布式电源能有效的减少传统化石能源的依赖,改善过量碳排放情况。

在分布式能源系统中,研究其容量配置方案是实现微电网系统可靠运行的前提,具有十分重要的意义。基于此,文中分别以风电场、光伏电站和制氢[1]储氢-发电系统作为博弈参与者构建经济模型,以各博弈参与者的收益最大化为优化目标,提出了基于非合作博弈的风-光-氢微电网容量优化配置模型,并利用粒子群算法对模型进行求解。最后通过算例仿真验证了所提模型能够提高微电网运行的经济性和可靠性。

微电网结构:

与传统化学电池储能相比,氢储在多个方面具有良好的性能,文中构建的风-光-氢微电网系统如图所示,由电解槽、储氢罐、燃料电池、风电场、光伏电站和微电网调度中心等组成。当风电、光伏出力大于负荷需求时,通过EC将多余的电能转换为氢气进行存储;在风电、光伏出力不足或负荷处于高峰期时通过FC将氢气转换成电能进行补充。

基于非合作博弈的容量配置方法:

优化目标:

文中以各博弈参与者的收益最大化为优化目标,对风电场、光伏电站和制氢-储氢-发电系统进行容量配置。由于风电、光伏输出功率的随机性和不确定性,微电网系统会不可避免地出现功率不足或盈余的情况。功率不足时需要从主网购买相应的功率以补足缺额;而功率盈余时则会出现弃风弃光现象。因此目标函数中考虑了各投资方的设备投资费用、购售电费用、运行维护成本、弃风弃光惩罚费用、负荷中断惩罚费用和政府补贴等因素,旨在寻求更合理的容量配置策略,降低容量配置成本,提高可再生能源的利用率。文中将系统的全周期成本转化为月平均成本进行分析计算,各博弈参与者的收益函数:

基于粒子群算法的求解方法:

文中采用粒子群算法对非合作博弈模型进行求解,粒子群相关参数设置为:种群规模为500,迭代次数为100,个体学习因子和群体学习因子均取1.45,惯性权重采用线性递减方式,初始惯性因子取0.9,最终惯性因子取0.4。具体求解步骤如下。

步骤1:输入系统相关参数,获取负荷需求曲线,根据风速、光照和温度历史数据预测风电和光伏的出力。

步骤2:各博弈参与者策略初始化,即在容量允许范围内随机初始化容量配置。

步骤3:各博弈参与者容量单独优化。根据Nash均衡的定义,各博弈参与者依据其他2个博弈参与者第i-1轮的容量配置策略,以最大化自身效用函数为优化目标,优化得出自身第i轮的容量配置方案。

步骤4:判断是否找到了Nash均衡点。如果相邻2次的策略完全一致,则说明找到了Nash均衡点,各博弈参与者按照此时的策略配置容量,并计算自身的效用函数。否则,重新返回步骤3。

步骤5:输出Nash均衡点(P*WT,P*PV,P*H)和收益函数Uwt,Upv和Uh

程序运行结果:

Matlab代码+数据下载:

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

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

相关文章

一文解析-通过实例讲解 Linux 内存泄漏检测方法

一、mtrace分析内存泄露 mtrace(memory trace),是 GNU Glibc 自带的内存问题检测工具,它可以用来协助定位内存泄露问题。它的实现源码在glibc源码的malloc目录下,其基本设计原理为设计一个函数 void mtrace ()&#x…

Gin框架之路由详解

路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。 GET POST 以及获取 Get Post 传值 动态路由传值 r.GET("/list/:cid", func(c *gin.Context) {cid := c.Param("cid&…

XML解析 不允许有匹配 _[xX][mM][lL]_ 的处理指令目标

以上错误是在解析xml参数时候报出的。 我这里错误的原因在于&#xff0c;<?xml version\"1.0\" encoding\"UTF-8\"?>少了个空格&#xff0c;参考下图&#xff1a; 下面一行才是对的。

通过Power Platform自定义D365CE业务需求 - 1. Microsoft Power Apps 简介

Microsoft Power Apps是一个趋势性的、无代码和无代码的商业应用程序开发平台,配有一套应用程序、服务和连接器。其数据平台为构建适合任何业务需求的自定义业务应用程序提供了快速开发环境。随着无代码、少代码应用程序开发的引入,任何人都可以快速构建低代码应用程序,并与…

2023最全软件测试基础+字节大佬整理的面试笔记(超详细~)

一、什么是软件&#xff1f; 软件是计算机系统中的程序和相关文件或文档的总称。 二、什么是软件测试&#xff1f; 说法一&#xff1a;使用人工或自动的手段来运行或测量软件系统的过程&#xff0c;以检验软件系统是否满足规定的要求&#xff0c;并找出与预期结果之间的差异…

hive的建表语句

hive建表语句CREATE TABLE ccwn_zh_event_push (customerid string,cardnumber string,accountnumber string,eventcode string,eventtime string,activities string,activityRefuseCode string,lables string)PARTITIONED BY(dt string)ROW FORMAT SERDE org.apache.hadoop.hi…

一文读懂java变量类型

前言 在学习和使用Java编程语言时&#xff0c;理解变量类型是至关重要的基础知识。Java是一种静态类型语言&#xff0c;强调变量必须先声明其类型&#xff0c;才能进行后续操作。因此&#xff0c;对于初学者来说&#xff0c;了解Java中不同的变量类型及其特性是迈向编程成功的…

不到5分钟就被赶出来的面试,我直呼太变态了......

干了两年外包&#xff0c;本来想出来正儿八经找个互联网公司上班&#xff0c;没想到算法死在另一家厂子。 自从加入这家外包公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到7月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直…

Unity 性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法

Unity 性能优化Shader分析处理函数&#xff1a;ShaderUtil.GetShaderGlobalKeywords用法 点击封面跳转下载页面 简介 Unity 性能优化Shader分析处理函数&#xff1a;ShaderUtil.GetShaderGlobalKeywords用法 在Unity开发中&#xff0c;性能优化是一个非常重要的方面。一个常见…

目标检测入门

一、目标检测任务对比 二、目标检测发展路线 基于深度学习的目标检测大致可以分为一阶段(One Stage)模型和二阶段(Two Stage)模型。目标检测的一阶段模型是指没有独立地提取候选区域(Region Proposal)&#xff0c;直接输入图像得到图中存在的物体类别和相应的位置信息。典型的一…

LightDB 23.3 通过GUC参数控制commit fetch

背景 commit游标提交之后&#xff0c;可以继续使用fetch进行结果集的操作。commit和fetch结合使用功能开发时不用考虑分布式。后续测试分布式时&#xff0c;发现持有portal后&#xff0c;会对querydesc进行非空判断&#xff0c;若querydesc为空&#xff0c;会造成崩溃。加上qu…

PHP 排序函数使用方法,按照字母排序等操作

详解PHP排序方法使用 一、sort() 函数 用于对数组单元从低到高进行排序。 //数组 $data array(D,F,A,C,B); //排序 sort($data); //输出排版标签 echo "<pre>"; //打印数据 print_r($data);die;输出结果&#xff1a; 二、rsort() 函数 用于对数组单元从高到…

得帆信息副总裁——孔金:低代码在医药行业的应用实践

医药行业作为国计民生的重点行业之一&#xff0c;受到法律法规的严格监管&#xff0c;其信息化程度普遍较高&#xff0c;也是较早通过ERP&#xff08;企业资源管理系统&#xff09;、WMS&#xff08;仓储管理系统&#xff09;、TMS&#xff08;物流管理系统&#xff09;、MES&a…

linux 系统资源命令

系统资源命令 当前系统负载 w查看的是整体的负载&#xff0c;可以来观察当前系统有没有压力 w 系统当前负载 第一行显示的内容依次为&#xff1a;时间、系统运行时间、登录用户数、平均负载(1分钟、5分钟、15分钟) 第二行后展示的信息为&#xff1a;当前登录的都有哪些用户、在…

来学Python啦,大话字符串

To be a happy man&#xff0c; reading&#xff0c; travel&#xff0c; hard work&#xff0c; care for the body and mind。做一个幸福的人&#xff0c;读书&#xff0c;旅行&#xff0c;努力工作&#xff0c;关心身体和心境。 前面我们讲解过关于用Python写温度转换器&…

列表和字典练习

定义四个学生信息 在Python环境下&#xff0c;用列表定义&#xff1a; >>> stu1[xiaoming,True,21,79.9] >>> stu1[lihong,False,22,69.9] >>> stu1[zhangqiang,True,20,89.9] >>> stu1[EMT,True,23,99.9]如图&#xff0c;定义了四个列表…

【MySQL系列】视图特性

「前言」文章内容大致是MySQL事务管理。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 视图1.1 视图概念1.2 创建视图1.3 修改互相影响1.4 删除视图1.5 视图规则和限制 视图 1.1 视图概念 视图是一个虚拟表&#xff0c;其内容由查询定义同真实的表一样…

Python 之 numpy.unique函数的介绍以及使用

文章目录 介绍语法&#xff1a;返回值&#xff1a;示例&#xff1a;补充[1] 介绍 np.unique 是 NumPy 库中的一个函数&#xff0c;用于从数组中获取唯一的值&#xff0c;并且可以返回这些唯一值的一些相关信息。以下是对 np.unique 函数的详细介绍&#xff1a; 语法&#xff…

A6120 Emerson 机箱地震振动监测器

A6120 Emerson 机箱地震振动监测器 艾默生过程管理公司宣布&#xff0c;PlantWeb数字工厂架构已经安装在化学工业CATCH(技术能力评估中心)培训中心&#xff0c;该中心位于北林肯郡格里姆斯比附近的Stallingborough。这座价值820万英镑的设施是为了满足行业对培训中心的需求而开…

leetcode 523. 连续的子数组和

感谢小虎哥的解答 bool checkSubarraySum(vector<int>& nums, int k) {unordered_map<int, int> map; // 创建哈希表&#xff0c;用于存储累积和取模 k 的结果和对应的下标map[0] -1; // 初始化哈希表&#xff0c;0 对应的下标为 -1&#xff0c;用于处理从…