当前位置: 首页 > news >正文

储能运行约束的Matlab建模方法

        最近一段时间有很多人问我最优潮流计算中储能系统的建模方法。部分朋友的问题我回复了,有些没有回消息的,我就不再一一回复了,在这里我写一篇博客统一介绍一下。

1.储能系统介绍

        首先,让【GPT】简单介绍一下储能系统:

        “储能设备在电力系统中的作用不可忽视。它们能够将多余的电能储存起来,并在需要时释放出来,以平衡电力供求关系。储能设备可以提供电网的稳定性和可靠性,保证电力系统的正常运行。首先,储能设备能够储存电能,以便在高峰期或紧急情况下提供备用电力。其次,当可再生能源如太阳能和风能产生电力过剩时,储能设备可以将其储存起来,以便在能源短缺或可再生能源不可用时供应电力。储能设备还可以提供快速响应的频率调节,以对抗电力波动。此外,通过在储能设备中储存低成本电力,并在高峰期将其释放,可以有效降低能源成本。总之,储能设备在电力系统中的作用是确保电力供应的稳定性和可持续性,提高能源利用效率,降低成本,并促进清洁能源的应用”。

        GPT回答的还算切题,简单来说,储能系统就是电能的存储装置,电力系统中电能过剩时将电能储存在储能中,电能紧缺时将储能中储存的电能释放出来,像抽水蓄能站就是一种典型的储能系统,而最近比较火热的电动汽车,其本质上也是一种特殊的储能系统。

        在对储能系统进行建模时,通常会涉及一些相关概念,在此进行简单介绍。

1.1 额定容量和额定功率

        储能的额定容量是指储能设备能够储存的最大电能量,通常以千瓦时(kWh)或兆瓦时(MWh)为单位。额定容量越大,意味着储能设备能够储存更多的电能,从而提供更长时间的电力供应。

        额定功率是指储能设备输出的最大功率,通常以千瓦(kW)或兆瓦(MW)为单位。额定功率越大,意味着储能存储或者释放电能的速度越快。

        我们在文献中通常见到的“储能优化配置”这一说法,实际上就是通过数学优化方法来选择储能最优的额定容量和额定功率。

1.2 充电和放电

        储能的充电就是将外界的电能存储到储能中,充电功率就是储能装置在充电过程中,单位时间内从外部电源吸收电能的速率,通常以千瓦(kW)或兆瓦(MW)为单位。

        类似地,储能的放电就是将储能中存储的电能释放出来,放电电功率就是储能装置在放电过程中,单位时间内释放电能的速率,通常以千瓦(kW)或兆瓦(MW)为单位。

        需要注意的是,一般文献中所指的储能充电功率和放电功率,都是储能实际存储或者向外界输出的功率,由于存在功率损耗,外界向储能输入的功率和充电功率不一定相等,储能消耗的功率和放电功率不一定相等。这种现象又引出了充电效率和放电效率的概念。

1.3 充电效率和放电效率

        储能的充电效率就是指充电过程中实际存储到储能中的电能外界向储能输入电能的比值,反映了充电过程中电能的损耗情况,充电效率越高表示充电时损耗越低。

        储能的放电效率就是指放电过程中储能实际输出的电能储能所消耗电能的比值,反映了放电过程中电能的损耗情况,放电效率越高表示放电时损耗越低。

1.4 荷电状态

        储能的荷电状态表示储能装置中存储电能的多少,通常可以使用百分比或者kWh(MWh)两种单位。

        当使用%作为单位时,储能的荷电状态表示储能中目前存储的电能和其总容量的比值,理论上可以从0%(没有储存电能)变化到100%(储存电能达到最大容量)。例如,一个储能装置的荷电状态为50%,表示该装置当前储存电能的容量为最大容量的50%。

        当使用kWh(MWh)作为单位时,储能的荷电状态表示储能当前存储电能的实际值,理论上也可以从0kWh(没有储存电能)变化到额定容量(储存电能达到最大容量),例如,一个储能装置的荷电状态为30MWh,表示该装置当前储存电能为30MWh。

2.储能运行的数学建模

        根据上述概念的介绍我们可以知道,储能系统的额定容量、额定功率、充放电效率都是常量(当然,对于储能优化配置问题来说,额定容量和额定功率也是变量),充放电功率和荷电状态是变量。而且它们之间还存在一定关系:储能充电时荷电状态增大,储能放电时荷电状态减小。理解了这一点后,就可以正式开始学习储能的建模方式。

        假设储能在t时刻充电或放电的功率为PS,t,其中当PS,t≥0时,表示储能系统向外界放电,储能自身荷电状态降低;当PS,t≤0时,表示储能系统充电,储能自身荷电状态增大。此时储能的荷电状态ES,t和充放电功率PS,t的关系可以表示为:

        此外,需要注意的是,计算荷电状态时,充放电效率一个要×,一个要÷,这是充放电效率的概念所决定的,大家可以结合上一节充电效率和放电效率的概念自行体会一下。

        这个公式含有非线性函数max(),一般都需要进行线性化再进行求解,文献中通常有三种不同的处理方式,下面分别进行介绍。

2.1 引入一组0-1变量的方式

        文献[1]中通过引入一组0-1变量,可以将储能的非线性约束转为线性约束,具体如下:

        式(4)和式(5)表示储能的充放电功率应小于其额定值,式(6)表示储能在一个调度期内充放电功率数值上相等(也就是调度始末的荷电状态不变)。式(7)表示储能的荷电状态应保持在一定的区间内。

        也有文献为了公式表达更简洁,引入一个中间变量ES,t表示储能的荷电状态,则式(6)和式(7)可以改写为:

        这样处理增加了变量的数目,但是可以使约束条件表达式更加简洁直观。

2.2 引入两组0-1变量的方式

        在储能的实际运行中,对储能控制策略可能存在很多特殊情况,例如在某一时间段,需要禁止储能进行充电和放电,这种情况下只引入一组0-1变量可能就不是很合适。

        举个例子进行说明,假设存在另一个变量Um用于限制储能的充放电行为,当Um=1,表示储能可以进行充放电,当Um=0时,表示禁止储能进行充放电行为,这时候可以增加两组约束条件,表示变量Um对储能充放电行为的限制:

        另一种更常规的方式是引入两组0-1变量,其中一个表示充电状态,另一个表示放电状态,如文献[2]中的方式: 

当存在对储能充放电状态的限制条件时,引入两组0-1分别表示储能的充放电状态,可以更方便地实现对储能运行的建模。实际情况中这样的约束条件有很多,例如电动汽车只有在充电站时才可以充电,抽水蓄能站在不满足水利条件时无法进行操作等等。

2.3 智能优化算法中的简化表示

        采用常规的数学规划算法时,引入0-1变量一般对问题求解效率不会造成太大影响,但对智能优化算法来说,存在0-1变量通常求解难度会更大,此外,非线性条件并不会影响智能优化算法的求解效率,而决策变量的数目越大,一般来说智能优化算法求解性能会更差。因此,使用智能优化算法求解储能运行策略时,要遵循的原则就是:

        1.尽可能避免使用0-1变量。

        2.尽可能减少变量的数目。

        基于上述原则,很多文献提出了各种不同的建模方式,文献[3]中所提的是1种比较常规的做法,具体如下:

 

        由上面的介绍可知,这样建模是假设了储能的充放电效率都为1,就可以只用储能荷电状态 E_S(t)这1个变量表示储能运行过程中的约束。

        另一种方式是只用储能的充放电功率这一个变量表示储能的运行状态,就可以考虑储能的充放电效率,表达方式如下:

3.实例分析

3.1 问题背景

        我编了一个简单的算例来说明三种不同方法的具体应用:

        某地有一个风-光-储互补系统,某一天中风电、光伏出力以及负荷需求都是已知的,现在需要控制储能的充放电策略,尽可能降低负荷短缺以及弃风弃光的现象。其中,储能系统的额定容量为40MW,额定功率为20MW,充放电效率分别为0.95和0.96,最大和最小荷电状态分别为15%和90%,初始荷电状态为30%,风、光、负荷各个小时的数据分别如下表(单位/MW):

光伏出力

风电出力

负荷需求

0

15.9958

15.6378

0

18.4567

14.7866

0

20.2975

14.3611

0

19.0719

13.7227

0

17.2262

13.5099

0.6857

7.3827

10.6378

2.1619

8.6131

13.8297

4.6232

10.4588

16.3831

7.0138

12.3044

16.7878

7.6877

7.3827

19.4884

9.6786

3.6913

16.8517

14.7472

5.5370

14.2982

10.9453

3.0761

12.8087

10.0531

2.4609

11.7448

7.3323

8.6131

12.3831

6.8265

10.4588

14.511

4.1410

16.6110

15.9955

1.3980

16.6110

16.6389

0.1607

11.0740

17.914

0

9.2283

20.1335

0

9.8436

17.2756

0

9.8436

14.8727

0

14.7653

13.1064

0

19.0719

12.2762

         首先看一下风电、光伏出力之和与负荷需求的匹配情况:

        从图中可以看到,风光出力和负荷需求存在明显的不匹配情况,如果没有储能系统的话,将出现弃风弃光与负荷短缺的情况。下面我们使用Matlab编程求解储能的运行策略,使得风电、光伏出力和负荷需求尽可能匹配。目标函数可以表示为: 

        下面使用三种不同的建模方式分别求解该问题。

3.2 引入一组0-1变量的方式

        通过引入一组0-1变量,可以将上述问题表述为:

 

        该优化问题的目标函数是一个二次函数,约束条件均为线性,包含0-1变量,是一个混合整数二次规划问题,可以使用Yalmip求解器进行求解。运行文件夹内的Method1.m文件即可得到如下结果: 

        由图可知,通过加入储能系统,可以明显减少系统的弃风弃光现象,避免出现负荷短缺的情况,增加新能源消纳率。

3.3 引入两组0-1变量的方式

        下面引入两组0-1变量,将上述问题表述为:

        该优化问题的目标函数是一个二次函数,约束条件均为线性,包含0-1变量,是一个混合整数二次规划问题,可以使用Yalmip求解器进行求解。运行文件夹内的Method2.m文件即可得到如下结果: 

        和第一种建模方式的结果完全一致,说明两种方法是等效的。为了说明第二种建模方式的效果,我们假设为了防止储能过度损耗,要求储能系统一天之内的充放电次数不能大于20次。大家可以思考一下,如果只有一组0-1变量,该如何表达这个约束条件。如果是有两组0-1变量,增加的约束条件可以这样表达: 

        将这个约束条件添加到原优化问题中,然后重新进行优化求解。运行文件中的Method2_1.m文件即可得到如下结果: 

        由以上结果可知,增加储能充放电次数约束之后,弃风弃光与负荷短缺的情况略有增加,新能源消纳率略有下降。但约束储能充放电次数一定程度上可以延缓储能寿命,在实际建模中可以适当考虑。

3.4 智能优化算法中的简化表示

        将储能充放电功率作为决策变量,使用经典的粒子群算法进行求解,优化问题可以表述为:

        使用罚函数的方式将约束条件添加到目标函数中,使用粒子群算法进行求解,其中问题维度为24,种群规模设为500,迭代次数设为500,运行文件夹内的Method3.m文件即可得到如下结果: 

        由结果可知,粒子群算法的效果比直接使用数学规划算法要差不少,需要采取一定措施进行改进。另一方面我们也可以知道,对于可以通过线性化表达转为线性规划、二次规划或者二阶锥规划的非线性规划问题,最好还是使用数学优化方法,加上求解器进行求解,一般效果都会比智能优化算法更好。除非模型实在太复杂,才考虑使用智能优化算法。

4.完整代码

        完整代码可以从以下链接获取:

储能运行约束的Matlab建模方法资源

参考文献

[1]刘一欣,郭力,王成山.微电网两阶段鲁棒优化经济调度方法[J].中国电机工程学报,2018,38(14):4013-4022+4307.

[2]高红均,刘俊勇,沈晓东等.主动配电网最优潮流研究及其应用实例[J].中国电机工程学报,2017,37(06):1634-1645.

[3]陈柯蒙,肖曦,田培根等.一种建筑集成光储系统规划运行综合优化方法[J].中国电机工程学报,2023,43(13):5001-5012.

相关文章:

储能运行约束的Matlab建模方法

最近一段时间有很多人问我最优潮流计算中储能系统的建模方法。部分朋友的问题我回复了,有些没有回消息的,我就不再一一回复了,在这里我写一篇博客统一介绍一下。 1.储能系统介绍 首先,让【GPT】简单介绍一下储能系统:…...

微信小程序 车牌号输入组件

概述 一个小组件,用于方便用户输入车牌号码 详细 概述 有时候我们开发过程中会遇到需要用户输入车牌号的情况,让客户通过自带键盘输入,体验不好且容易出错,例如车牌号是不能输入O和I的,因此需要有一个自定义的键盘…...

Bootstrap Blazor 实战动态表单组件

1.新建工程 源码 新建工程b18ValidateForm,使用 nuget.org 进行 BootstrapBlazor 组件安装, Chart 库,字体. 将项目添加到解决方案中 dotnet new blazorserver -o b18ValidateForm dotnet add b06chart package BootstrapBlazor dotnet add b06chart package BootstrapBlazo…...

Elasticsearch 集成---Spark Streaming 框架集成

一.Spark Streaming 框架介绍 Spark Streaming 是 Spark core API 的扩展,支持实时数据流的处理,并且具有可扩展, 高吞吐量,容错的特点。 数据可以从许多来源获取,如 Kafka , Flume , Kin…...

Kotlin 中的 协程 基础篇

一、什么叫协程 协程可以称为轻量级线程,线程代码块; 二、GlobalScope 协程 CoroutineScope (协程作用域) 的上下文中通过 launch、async 等构造器来启动。GlobalScope ,即全局作用域内启动了一个新的协程,这意味这该协程的生命周期只受整…...

SQL事务

事务的概念: 事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序自动执行。事务就是一些SQL语句组(每条单独的SQL语句也算一个事务),其中事务中的SQL…...

关于flutter中 initState() 与 setState() 用法

initState()函数是在组件渲染之前执行的。在Flutter中,initState()是StatefulWidget的生命周期方法之一,在调用build()方法之前被调用。当创建一个StatefulWidget并将其添加到组件树中时,Flutter会实例化该组件的状态对象,并在调用…...

智能电话机器人是如何自主学习的

电话机器人主要通过语音识别和针对语意的理解识别客户所说的内容,针对性的回答问题,为企业高效筛选意向客户。除了电话机器人语音识别之外,电话机器人能够自主学习,不断完善产品知识及话术等,是它智能的另一种体现。那…...

【Rust】Rust学习 第十八章模式用来匹配值的结构

模式是 Rust 中特殊的语法,它用来匹配类型中的结构,无论类型是简单还是复杂。结合使用模式和 match 表达式以及其他结构可以提供更多对程序控制流的支配权。模式由如下一些内容组合而成: 字面值解构的数组、枚举、结构体或者元组变量通配符占…...

我的学习笔记:数据处理

数据清洗 对数据进行处理和加工,以使其适合分析和建模。数据清洗包括去除重复数据、填补缺失值、处理异常值和转换数据格式等操作,以提高数据的可靠性和准确性,避免数据分析时出现偏差,提高决策的准确性。 数据去重:通…...

GB28181国标平台测试软件NTV-GBC(包含服务器和模拟客户端)

GB28181国标平台测试软件NTV-GBC用于对GB28181国标平台进行测试(测试用例需要服务器软件,服务器软件可以是任何标准的国标平台,我们测试使用的是NTV-GBS),软件实现了设备注册、注销、目录查询,消息订阅、INVITE&#x…...

云原生:重塑企业的技术疆界

云原生技术正在重新塑造我们对软件开发、部署和运维的理解。这些技术带来了灵活性、可扩展性以及在复杂环境中保证稳定性的可能性,这些都是企业在云原生场景中比较关注的问题。本文将主要聚焦于云原生场景,探讨其影响和作用。 云原生的定义 云原生计算基…...

华为星闪,一项将 “ 更稳 WiFi ” 和 “ 更好蓝牙 ” 融合起来的通信标准

兼顾多用途和专业化的 AI 大模型、移除安卓代码的 HarmonyOS NEXT 、给折叠屏应用提供适配方向的《 折叠屏/平板应用体验评估标准 》。。。 不过除了这些比较贴近我们普通用户,容易讲清楚的东西,华为还官宣了一个大家可能没注意的黑科技: 星…...

IDEA创建Mybatis格式XML文件

设置位置:File | Settings | Editor | File and Code Templates 选择Files,点击号 Name中输入xml模板名(名称自行决定),后缀名extension输入xml(固定) 内容处输入Mybatis的xml文件模板内容&…...

二叉树中的最大路径和-递归

路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root…...

Python if-else 速记

文章目录 在 Python 中使用三元运算符作为 if-else 速记总结 编程中经常使用速记符号来简化我们的工作。 速记符号是一种可以更简洁、更省时省力地完成工作的方法。 本文将讨论 Python 中使用的速记符号作为 if-else 语句的快捷方式。 在 Python 中使用三元运算符作为 if-else…...

Python使用内置的json模块来处理JSON数据

目录 1、解释说明: 2、使用示例: 3、注意事项: 1、解释说明: 在Python中,我们可以使用内置的json模块来处理JSON数据。这个模块提供了四个主要的函数:dumps、loads、dump、load。 - dumps:将…...

亿赛通电子文档安全管理系统 RCE漏洞

亿赛通电子文档安全管理系统 RCE漏洞 一、 产品简介二、 漏洞概述三、 复现环境四、 漏洞复现小龙POC检测: 五、 修复建议 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失…...

信息安全面试题合集

0x00 前言 本篇会记录一些可能会遇到的面试题,持续更新 0x01 Web SQL注入 sql注入常见的闭合方式有哪些?Mysql5.0上下sql注入有什么区别?SQL注入空格被过滤,有什么绕过方式?过滤了逗号,有什么绕过方式&…...

vue 简单实验 自定义组件 传参数 props

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"todo-list-app"><todo-item v-bind:todo"todo1"></todo-item> </div> <script> const ListR…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...