开源代码分享(9)—面向100%清洁能源的发输电系统扩展规划(附matlab代码)

1.背景介绍

1.1摘要

        本文提出了一种新颖的建模框架和基于分解的解决策略,将随机规划(SP)和鲁棒优化(RO)相结合,以应对协调中长期电力系统规划中的多重不确定性。从独立系统运营商(ISO)的角度出发,问题被建模为一个多年的发电和输电规划问题,旨在最小化二进制和连续不确定性下的扩展和运营成本,即系统元件事故和负荷/发电变化。RO利用经修正的事故准则来捕捉N-k事故,而SP嵌入RO通过使用具有时空相关性的历史数据生成操作场景来考虑负荷/发电不确定性。原始混合模型非常复杂,但通过基于列-约束生成和L型算法的分解策略可以减轻其复杂性。我们应用我们的模型来进行长期系统规划,研究了高比例可再生能源渗透度的情况,以及长期规划中100%可再生能源的情况。在多尺度测试系统上进行的数值实验验证了所提出方法的有效性。

1.2引言

        对于高可再生能源渗透的电力系统的运营模式和经济状况的研究,引起了学术界和工业界的广泛关注。可再生能源虽然具有清洁能源和零运营成本的优势,但其随机发电模式对电力系统的可靠性构成了挑战,尤其是当电网需要为突发情况提供高水平的备用能力时。因此,尽管美国政府和更广泛的社区极力鼓励可再生能源投资[1],但在高渗透可再生能源的情况下的系统规划仍需要进一步研究。

        迄今为止,研究人员已经在基于不确定性的系统规划方面做了广泛的工作[2]-[5]。从ISO的角度来看,发电机和输电线路是最大的可靠性问题,这在许多运行问题中经常存在,例如机组组合问题[6]和输电规划问题[2]。鲁棒优化(RO)可以有效应对这种不确定性,具体描述在[2]和[7]中。RO的基本思想是找到最坏情况,然后做出预防性决策,这也使解决方案高度保守。另一方面,可再生能源和弹性需求的不确定性是系统规划师面临的另一个挑战。大量的文献(例如[8]和[9])也采用RO来处理这种不确定性,通过设置保守边界。然而,相对而言,随机规划(SP)比RO提供了较少保守的解决方案,我们可以利用历史数据生成场景。特别是对于具有高可再生能源渗透的大型系统,通过场景生成,如蒙特卡洛模拟结合多阶段场景树[10],能够准确捕捉可再生能源和需求的时空相关性。

        在当今的输电网络中,不确定性层出不穷,例如发电机/线路的二进制状态和持续发电/负荷的波动性。因此,将SP和RO结合起来是一种具有更高可靠性的有前途的方法。最近,许多研究也考虑了融合了持续形式的混合SP和RO形式,如[3]、[5]和[11],但这仅对不确定性进行了有限的评估。很少有研究同时考虑电力系统元件的事故和随机发电,尤其是在高可再生能源渗透水平下的发电和输电扩展问题(G&TEP)中。

        由于其非凸性和涉及的不确定性,G&TEP在多重不确定性下的联合优化是一个棘手的问题。A. Moreira等人[4]在连续不确定性中融合了二进制事故,但没有探索改进算法以促进解决方案。L. Gallego等人[12]使用启发式算法来避免求解复杂的模型,但得到的是局部最优解。然而,评估所获得的最优解与全局最优解之间的差距并不容易。我们认为,在像电力系统规划这样可能涉及多个规划年份且不需要实时解决的大规模经济评估中,如果我们能获得一个保证的全局最优解,将是更好的选择。这可以看作是我们提出的方法与那些智能方法相比的优势。此外,大多数现有的研究解决单年度规划问题[11]、[13]、[14],这些问题并未涵盖电力系统规划的某些方面,如发电机投产或退役的时机。然而,在我们的研究中,我们的目标是调查在系统中进行超高可再生能源安装是否有益。由于可再生单位被广泛认为是没有变动运行成本的单位[15],可再生能源投资的经济回报可能在长期内超过传统单位。因此,为了确保对不同发电技术进行公正比较,我们还考虑了投资成本并拟揭示可再生能源投资的成本效益,尤其是在超高可再生能源渗透案例下。

        为了研究百分之百可再生能源的系统,可再生能源之间的相关性也是至关重要的,例如不同地区的风能,风能和太阳能,风能和需求等。在任何时刻,系统应该有足够的可再生能源发电量来满足需求。然而,系统规划者必须采取系统范围的方法,考虑区域间的相互支持,避免特定位置的发电短缺。此外,即使在发生N-k线路故障的情况下,充足的输电能力对于区域间能源交换以保持系统能量平衡至关重要。最终的最优G&TEP投资应考虑到最佳的发电组合和长期的可再生能源发电前景。一些研究人员(例如[14])认为,100%可再生能源的盈利能力不如传统能源发电组合,但这实际上对系统设置非常敏感。

        在本文中,我们提出了一种有效的G&TEP建模和解决方案方法,以实现100%可再生能源渗透。[16]提出的柱塔与约束生成(C&CG)方法可以将我们的问题分解为一个主问题和一个子问题。这种方法已被[3]、[6]、[11]等许多研究采用,并成为多阶段RO问题的主流解决方法。此外,正如[11]和[4]中报道的那样,解决子问题消耗了大部分计算时间。我们提出应用L形法[17]来进一步促进子问题的求解,这也可以实现并行计算。同时,我们特别考虑基于蒙特卡罗采样的区域可再生能源对短期和长期时空相关性与负载之间的相关性。图1提供了我们提出的方法的总体框架。

        与最先进的研究相比,本文的主要贡献有三个方面。
        1) 我们分析了在超高水平的可再生能源渗透下的协调系统规划,并通过特定参数设置,在IEEE测试系统和WECC系统上调查了100%可再生能源渗透可能存在的问题。
        2) 为了应对G&TEP中的多重不确定性,我们提出了一个三阶段的多年鲁棒共优化模型,其中包含随机调整模型。鲁棒对偶模型捕捉到了N-k容错,而基于样本的情景考虑了可再生能源与负载之间的时空相关性,实现了需求和可再生能源的不确定性。
        3) 我们利用C&CG算法将整个问题分解为主从结构,并基于对偶理论改进了随机子问题,并采用L形法进行了分解。这大大提高了计算效率,多尺度测试案例验证了所提出的方法的有效性。

        本文的其余部分安排如下:第三节描述了G&TEP模型的数学表达;第四节介绍了所提出的解决策略和详细的流程图;案例研究和可扩展性测试分别在第五节和第六节分析;第七节对本文进行总结,并提出几点意见。

2.数学模型

在本节中,我们将详细介绍复合不确定性G&TEP的数学模型。首先,我们将展示混合SP和RO模型的三阶段确定等效形式(DEF)。在此,我们所提到的“阶段”指的是所提出的优化框架的数学结构。

 

        目标函数(1)描述了提议的发电机和输电线路扩建的投资成本,以及计划的常规发电机的运行成本和可能的负荷削减。

        约束条件(1a)-(1b)对发电机和输电线路的投资预算进行建模,并构建了第一阶段的可行区域。约束条件(1c)-(1e)表示一旦在第t年进行了投资,该组件将在规划时间的剩余部分可用。控制集合N(∗,t)表示候选单位和规划时间之间的映射,我们根据可投资的年限对候选单位进行分类。这些约束条件构成了第一阶段的约束空间。约束条件(1f)显示了发电机和输电线路的N-k准则,其中Kt可以调整以执行不同的应急分析。该约束条件是第二阶段的不确定性集合[18]的形式(第二阶段的目标函数可以被视为{0 a},其中a是故障指标的向量)。该不确定性集合是离散多面体。

        对于第三阶段,我们首先解释t和h之间的关系。由于我们考虑的是长期规划问题,在整个一年的8760个小时上进行遍历会给模型带来很重的复杂性。因此,我们考虑第三阶段采用24小时运行作为对一个典型日的小时调度进行分析。这种操作在[14]中也被采用。然后,时间索引映射集合M可以描述为

 

        此外,我们还注意到该设计进一步推广了选择代表性小时/天的应用。当系统规划师打算选择更多代表性小时进行G&TEP研究时,通过增加小时数来调整集合M是微不足道的。这也表明我们提出的框架非常灵活和通用,可以根据系统规划师在G&TEP问题中的需求进行扩展。

        值得注意的是,我们公式中的故障指标是以天为基准的变量。正如我们所指出的,第三阶段问题可以视为一个24小时的经济调度问题。对于这种运行问题,通常在整个运行周期内,即24小时内,考虑事故情况[19]。实际上,94%的计划和运行中的故障持续时间超过2小时,其中34.6%的故障持续时间超过48小时[20]。在一些系统规划的研究中,也采用了长期的应急情况[5]。为了简化起见,由于我们选择了一年中的一天作为多个不确定情景的代表性日期,我们稍微滥用了符号,并使用一个以年为基准的索引来表示以天为基准的变量,例如aG g,t。此外,对于第三阶段的运营问题,我们选择使用一个具有多个情景的代表性日进行研究,以调查区域可再生能源和负荷之间的短期相关性,这可以通过小时级的运营更好地捕捉,正如[14]中所采用的方式。

        特别地,约束条件(1g)是节点平衡约束,约束条件(1h)定义了直流线路流动方程。需要注意的是,这里我们稍微滥用了符号,使得单位电抗A'在系统基准MVA下应进行归一化处理。约束条件(1i)-(1l)是候选线路和现有线路的线路流量限制约束。约束条件(1m)-(1p)是候选发电机和现有常规发电机以及可再生发电机的发电能力约束。需要注意的是,可再生发电机可以进行调度,因此我们允许可再生能源的削减。约束条件(1q)表示相位角限制。我们可以发现,所有第三阶段的变量都与情景索引ω相关联,用于不同可再生能源和负荷实现的不同情况。需要注意的是,二进制变量和变量的乘法,比如(1h),(1i),(1j),(1m)和(1o),使得该模型成为混合整数非线性模型。

        所提出的模型(1)是基于混合随机和鲁棒优化的系统规划的非常通用的框架,并且可以轻松调整或扩展以包括更多关于各种研究方向或工业应用的约束条件。例如,在我们的案例研究中,我们没有任何现有的发电机,因此可以在公式中忽略约束条件(1n)和(1p)。我们还修改了(1)以包含独特的案例设置,例如区域N-1容错和一个候选母线的多个投资,可以通过将约束条件(1f)替换为(1r)并分别添加约束条件(1s)来实现,如下所示。

 

其中,z表示区域指示符,Z是总区域集合,ncg表示热力发电机的候选母线,ncr表示可再生发电机的候选母线。

3.模型求解方法

        在所描述的模型的第三部分中,提出了一个难以解决的三阶段混合整数非线性问题,其中包含随机补偿。然而,我们可以将原始问题分解为一个混合整数线性规划(MILP)主问题和一个混合整数双线性子问题的结构,可以基于C&CG算法的理论进行迭代求解[16]。线性放松技术可以处理子问题的非线性。此外,可以使用L形法对子问题进行进一步的分解[17]。

        图2描述了整体的解决方案工作流程。通常,我们采用C&CG算法将问题分解为主-从结构,然后L形算法根据不同的场景进一步对子问题进行分解。我们将在问题的描述中解释图2的过程和符号表示。为了更简洁,下面使用了紧凑的形式。

3.1主问题

        在C&CG过程中,我们将主问题表示为式(2)。其中x表示一阶段变量,z表示第三阶段变量,其迭代索引为k,包含当前迭代k之前的所有过去迭代的信息。IC和PC表示投资成本和惩罚成本的向量,而pG和r表示发电机出力和负荷放弃的向量。φ是一个辅助变量,用来构建第二阶段问题的松弛下界。第三阶段变量的约束条件为式(2d)。需要注意的是,这里的第二阶段变量a是固定的,它们是从子问题中获取的。因此,主问题现在成为一个确定性的混合整数线性规划问题,可以通过现成的求解器有效地求解。这里,x包括一阶段变量,z包括第三阶段变量。

 

3.2子问题

        C&CG程序的子问题是由第二和第三阶段问题构建而成的,即确定情景下最坏情况的问题。在这里,变量a包括第二阶段的变量。

        请注意,约束中的第一阶段变量成为了在上一次迭代中从主问题中获得的固定参数。由于(3)的内最小化问题具有线性规划特性,根据强对偶理论,在给出第二阶段的客观句柄后,等价于将(3)重写为它的对偶形式(4)。 

        其中Q(a,π)表示二元化的目标函数,π为(3)中所有对偶变量的向量,Γa,π由约束空间组成。为了更好地演示,问题(4)被进一步修改为一个最小化问题(5),在那里我们以(5a)-(5c)的形式重写了Γa,π。具体来说,(5a)构造了不确定性集,(5b)制定了操作约束,并且(5c)确保了KKT条件的双重可行性。

 

        请注意,在目标函数中,Q(a,π)包含了由主问题确定的第一阶段决策x∗。该子问题展现了典型的两阶段随机混合整数双线性最小化结构。此外,线性松弛技术例如Big M方法(见附录A)可以有效地放松双线性部分而不损失准确性。由于整数变量的二进制特性使得凸松弛更加紧密,我们可以确保所得到的解的准确性。根据随机L形法[17],具有线性回应和有限支持的两阶段混合整数随机规划也是可分解的,如下所示。

 在l型主问题中,η是一个辅助变量,αo和βo是由l型子问题的对偶计算出来的子梯度,这将在下一小节中讨论。请注意,这个公式是用于单次切割的l形算法的。

 

        当l形主问题得到一个∗的最优解时,子问题接收到这个解并解决操作问题。设ξ∗(ω)表示运算约束(7a)的最优对偶解。在求解了可以并行完成的ω个单个l形子问题后,每次迭代的子梯度可以计算如下。 

        然后,l形主问题得到一个最优性切割(6b)。最后,∗形过程的内部迭代循环确定了最终的最坏情况偶然事件,并将其发送回C&CG主问题。由于我们实现了减负荷,所有问题的可行性都得到了保证,因此可行性削减可以忽略不计。 

        根据收敛性分析[16]和[17],该算法通过第二阶段随机追索不确定集的有限极值点和有限支持来保证其收敛性。图2显示,C&CG过程不会影响嵌入式L形方法的收敛速度,这意味着我们仍然保持了C&CG方法[16]的快速收敛。C&CG部分的收敛性依赖于L形算法的收敛性,并由随机追索中有限的支持度来保证。根据[4]和[11]的报道,解决原始子问题占据了大部分的计算时间。采用L形方法时,我们利用并行计算的优势来方便解决子问题。

4.算例分析

        为了说明我们提出的方法,我们修改了IEEE 30节点系统,使其减少传输线路并且没有现有的发电机。图3显示了详细的拓扑结构,其中蓝色和橙色的节点分别表示建设风力发电机和太阳能发电机的候选位置。热力发电机可以投资于任何负荷节点。虚线表示候选输电线路。表格I显示了投资信息,可以在[24]–[26]中找到参考资料。修改后的IEEE 30节点系统每日的峰值功率需求总和为2,000兆瓦,分布在三个地区。我们将负荷削减的惩罚成本设置为1,000美元/兆瓦时。

 

 

 

 

 

 

 

 5.完整代码获取

代码获取链接如下:

https://github.com/thiagojluz/IEEE-Thiago-Luz

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试|性能测试相关理论

测试|性能测试相关理论(了解) 文章目录 测试|性能测试相关理论(了解)1.什么是性能测试生活中遇到的软件性能问题:性能测试定义:性能测试和功能测试有什么区别:性能好坏的评价指标影响一个软件性…

Redis安装部署(基于windows平台)

redis简介 键值对存储数据库是NoSQL数据库的一种类型,也是最简单的NoSQL数据库。顾名思义,键值对存储数据库中的数据是以键值对的形式来存储的。常见的键值对存储数据库有Redis、Tokyo Cabinet/Tyrant、Voldemort以及Oracle BDB数据库。 Remote Diction…

一起学算法(二维数组篇)

1.概念定义 1.矩阵的定义 矩阵A(nm)的定义时按照长方形排列的复数或实数集合,其中n代表的是行数,m代表的是列数。如下所示,代表的是一个4x3的矩阵 在Java中,我们可以用A[n][m]来代表一个n*m的矩阵,其中A[i][j]代表的是…

2023年的深度学习入门指南(23) - ChatGLM2

2023年的深度学习入门指南(23) - ChatGLM2 在《在你的电脑上运行大模型》这一节,我们曾经介绍过ChatGLM模型,它是当时最好的中文大模型之一。现在,它又更新到了第二代,即ChatGLM2。 当时,我们的技术储备还不足&#…

upload-labs详解------持续更新

目录 注: 搭建: pass-01(前端绕过) pass-02(后缀绕过) pass-03(黑名单绕过) pass-04(Apache解析漏洞\.htaccess文件绕过) 注: 本项目提供的…

Halcon学习之一维测量实战之测量矩形(一)

一、采集图像 (1)测量充电器 测量充电器的引脚,然后每次旋转充电器,让测量矩形都跟着它转,这就是定位+测量, (2)测量钥匙 (3)测量瓶盖 我们后面还会涉及到拟合的问

【Python】Web学习笔记_flask(1)——模拟登录

安装flask pip3 install flask 第一部分内容&#xff1a; 1、主页面输出hello world 2、根据不同用户名参数输出用户信息 3、模拟登录 from flask import Flask,url_for,redirectappFlask(__name__)app.route(/) def index():return hello worldapp.route(/user/<uname…

IDEA中连接虚拟机 管理Docker

IDEA中连接虚拟机 管理Docker &#x1f4d4; 千寻简笔记介绍 千寻简笔记已开源&#xff0c;Gitee与GitHub搜索chihiro-notes&#xff0c;包含笔记源文件.md&#xff0c;以及PDF版本方便阅读&#xff0c;且是用了精美主题&#xff0c;阅读体验更佳&#xff0c;如果文章对你有帮…

阻塞队列BlockingQueue详解

一、阻塞队列介绍 1、队列 队列入队从队首开始添加&#xff0c;直至队尾&#xff1b;出队从队首出队&#xff0c;直至队尾&#xff0c;所以入队和出队的顺序是一样的 Queue接口 add(E) &#xff1a;在指定队列容量条件下添加元素&#xff0c;若成功返回true&#xff0c;若当前…

Flask简介与基础入门

一、了解框架 Flask作为Web框架&#xff0c;它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的&#xff0c;是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序…

webScoket

webScoket是什么&#xff1f; 支持端对端通讯可以由客户端发起&#xff0c;也可以有服务端发起用于消息通知、直播间讨论区、聊天室、协同编辑等 做一个简单的webScoket 客户端配置&#xff1a; 1、新建一个页面叫web-scoket.html <!DOCTYPE html> <html lang"…

【CSS】ios上fixed固定定位的input输入框兼容问题

需求 &#xff1a; 实现一个简单的需求&#xff0c;上方是搜索框并且固定顶部&#xff0c;下方是滚动的内容list 问题 : 若如图上方使用固定定位, 下方用scroll-view, 在安卓上是没有问题的, 但是发现ios上会出现兼容问题 : 问题1: 当content list滚动到中间时再去搜索, 展…

maven引入本地jar包的简单方式【IDEA】【SpringBoot】

前言 想必点进来看这篇文章的各位&#xff0c;都是已经习惯了Maven从中央仓库或者阿里仓库直接拉取jar包进行使用。我也是&#x1f921;&#x1f921;。 前两天遇到一个工作场景&#xff0c;对接三方平台&#xff0c;结果对方就是提供的一个jar包下载链接&#xff0c;可给我整…

明明已经安装字体,但IDEA、CLION无法找到思源黑体/Source Hans Sans的问题解决

IDEA、CLION的Jetbrain系列软件不支持非TrueType的中文字体&#xff0c;而Adobe官方给出的字体却不是TrueType的&#xff0c;所以便会导致Jetbrain系软件无法找到已安装的中文字体&#xff0c;因此我们需要安装TrueType的字体 请在以下Github链接中下载&#xff1a; TrueType思…

java实现钉钉群机器人@机器人获取信息后,机器人回复

1.需求 鉴于需要使用钉钉群机器人回复&#xff0c;人们提出的问题&#xff0c;需要识别提出的问题中的关键词&#xff0c;后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人&#xff0c;附带提出的问题&#xff0c;后端接收消息后识别消息内容&#xff0c;读取到关键…

使用Three.js创建旋转的立方体

使用Three.js创建旋转的立方体 在本篇技术博客中&#xff0c;我们将介绍如何使用Three.js创建一个简单的场景&#xff0c;其中包含一个旋转的立方体。我们将学习如何设置场景、摄像机、立方体和渲染器&#xff0c;以及如何使用OrbitControls和gsap库来实现立方体的旋转动画和交…

基于Spring Boot的美食分享网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的美食分享网站设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java springboot…

HawkEye设备智能维保平台:助力制药行业设备管理实现数字化转型

随着科技的不断进步和市场竞争的日益激烈&#xff0c;制药行业的设备管理的数字化转型已经成为一个不可逆转的趋势。尤其是在疫情时代&#xff0c;制药企业肩负着重大的社会责任&#xff0c;致使其设备管理的数字化转型之路迫在眉睫。 设备管理的数字化不仅可以提高企业的生产效…

iOS开发-实现热门话题标签tag显示控件

iOS开发-实现热门话题标签tag显示控件 话题标签tag显示非常常见&#xff0c;如选择你的兴趣&#xff0c;选择关注的群&#xff0c;超话&#xff0c;话题等等。 一、效果图 二、实现代码 由于显示的是在列表中&#xff0c;这里整体控件是放在UITableViewCell中的。 2.1 标签…

leetcode 135. 分发糖果

2023.8.1 这道题只从前向后遍历会出各种问题&#xff0c;所以最后决定向前向后各遍历一次。 先定义一个饼干数组biscuits&#xff0c;记录每个孩子的饼干数量&#xff0c;初始化每个孩子饼干数量为1。 然后从前向后遍历、从后向前遍历&#xff0c;使其满足“相邻两孩子评分更高…