EI论文联合复现:含分布式发电的微网/综合能源系统储能容量多时间尺度线性配置方法程序代码!

适用平台:Matlab/Gurobi

程序提出了基于线性规划方法的多时间尺度储能容量配置方法,以满足微电网的接入要求为前提,以最小储能配置容量为目标,对混合储能装置进行容量配置。程序较为基础,算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!

参考文献:

《含分布式发电的微电网中储能装置容量优化配置》-电力系统保护与控制

《基于机会约束规划的混合储能优化配置方法》-电网技术

《基于全寿命周期成本的配电网蓄电池储能系统的优化配置》-电网技术

《微电网复合储能多目标优化配置方法及评价指标》-电力系统自动化

程序创新点:

1)利用线性规划方法对储能进行配置,更贴合实际工程需求

2)将储能配置精细化到分钟级别,进一步减小配置成本,模型普适性高;

主要工作:

由于分布式发电的随机性、间歇性,含分布式发电的微电网很难满足电网接入的要求。若在微电网中配置合适容量的储能装置,并对其采取适当控制方法,不但可以平滑分布式发电的输出功率,而且可以达到对微电网负荷削峰填谷的作用。为实现微电网内电池容量的优化配置,提出了基于线性规划方法的多时间尺度储能容量配置方法,以满足微电网的接入要求为前提,目标函数为配置过程中整体的运行成本最小,约束条件包括相应的运行约束以及能量平衡约束,最后将模型化简为一个混合整数线性规划问题,对混合储能装置进行容量优化配置。仿真结果表明,所提方法不仅能够使分布式发电出力满足微电网要求,并可以实现对储能容量的优化配置。

储能容量线性优化配置方法

定义问题:确定储能系统的目标和约束条件。目标可能包括最小化总成本、最大化可再生能源利用率、或者最小化对电网的影响等。约束条件可能包括储能系统的技术特性、电网的要求、负载需求等。

建立数学模型:将问题转化为数学表达式。定义决策变量,例如储能容量、充放电速率等。将目标函数和约束条件表示为这些变量的线性组合。确保问题可以被表示为线性规划问题。

线性规划求解:使用线性规划求解器,如单纯形法或内点法,来找到满足约束条件下最优的决策变量值。这将给出最优的储能容量配置,以达到定义的优化目标。

灵活性和灵敏性分析:进行灵活性和灵敏性分析,评估最优解对于参数变化的鲁棒性。这有助于了解在不同情景下储能系统配置的稳健性。

结果解释和应用:分析最优解,理解结果如何满足系统的需求和目标。将最优配置应用到实际系统中,可能需要考虑实际情况中的一些非线性因素。

需要注意的是,虽然线性规划在某些情况下能够提供较好的解决方案,但实际的储能系统配置问题可能涉及到非线性、离散、动态等复杂因素。因此,在一些情况下,可能需要使用更为复杂的优化技术,如整数规划、动态规划或者元启发式算法,以更好地解决实际问题。

程序结果:

案例1结果:

案例2结果:

案例3结果:

部分程序:

battery_effic_disch=0.95; %it cant be 1. set 0.99
battery_effic_charge=0.95; %it cant be 1. set 0.99
%iNVERTER
%2D zero element matrix (time intervals*time intervals)
zeros_2D=zeros(num_of_hours,num_of_hours);
%Create the positive diagonal matrix with 1.
v = ones(1,num_of_hours);
Diag1_pos = diag(v);
%Create the negative diagonal matrix with -1.
%Create the negative diagonal battery efficiency.
Diag_neg_disch_eff=Diag1_neg*battery_effic_disch;  %is not implemented yet
Diag_pos_charge_eff=Diag1_pos*(1/battery_effic_charge);
%Create the  diagonal matrix OF THE first efficiency
Diag_eff1_pos =diag(v);
Diag_eff1_neg=-Diag_eff1_pos;
%Create the  diagonal matrix OF THE second efficiency
%create lower triangular matrix positive and negative
v=tril(ones(num_of_hours,num_of_hours),-1);
pos_triangular=v+Diag1_pos;
neg_triangular=-pos_triangular;
%Create the  diagonal matrix OF THE bounds efficiency 
v = ones(1,num_of_hours);
v=v.*bounds_efficiency(1);
Diag_bounds_eff1 =diag(v);
%Create the  diagonal matrix OF THE bounds efficiency 
v = ones(1,num_of_hours);
v=v.*bounds_efficiency(2);
Diag_bounds_eff2 =diag(v);
%Create the  diagonal matrix OF THE bounds efficiency 
v = ones(1,num_of_hours);
v=v.*bounds_efficiency(3);
Diag_bounds_eff3 =diag(v);
%Create the  diagonal matrix OF THE bounds efficiency 
v = ones(1,num_of_hours);
v=v.*bounds_efficiency(4);
Diag_bounds_eff4 =diag(v);
%create the upper bound value of y1 and y2
upper_y1=max_batt_discharge+max(PV);
upper_y2=max_batt_charge*(1/battery_effic_charge);
%Create the  diagonal matrix of upper bound value of y1 
v = ones(1,num_of_hours);
v=v.*upper_y1; %very big value for ours values
Diag_upper_pos_y1 =diag(v);
Diag_upper_neg_y1 =-Diag_upper_pos_y1;
%Create the  diagonal matrix of upper bound value of y2 
v = ones(1,num_of_hours);
v=v.*upper_y2; %very big value for ours values
Diag_upper_pos_y2 =diag(v);
Diag_upper_neg_y2 =-Diag_upper_pos_y2;

欢迎感兴趣的小伙伴关注并获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

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

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

相关文章

【设计模式】策略模式及函数式编程的替代

本文介绍策略模式以及使用函数式编程替代简单的策略模式。 策略模式 在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式定义了一系列算法或策略,并将每个算法封装在独立…

PyPDF2:项目实战源码分享(PDF裁剪)

目录📑 1. 背景📑2. 源码模块解析📑2.1 读取PDF页数2.2 获取指定页的宽高尺寸2.3 裁剪单页PDF2.4 批量裁剪PDF 总结📑 1. 背景📑 接PyPDF2模块推荐博文中提到的实际需求(将银行网站下载来的多页且单页多张…

【大数据】Flink 内存管理(二):JobManager 内存分配(含实际计算案例)

Flink 内存管理(二):JobManager 内存分配 1.分配 Total Process Size2.分配 Total Flink Size3.单独分配 Heap Size4.分配 Total Process Size 和 Heap Size5.分配 Total Flink Size 和 Heap Size JobManager 是 Flink 集群的控制元素。它由三…

亿道丨三防平板丨加固平板丨为零售业提供四大优势

随着全球经济的快速发展,作为传统行业的零售业也迎来了绝佳的发展机遇,在互联网智能化的大环境下,越来越多的零售企业选择三防平板电脑作为工作中的电子设备。作为一种耐用的移动选项,三防平板带来的不仅仅是坚固的外壳。坚固耐用…

【Python笔记-设计模式】前端控制器模式

一、说明 常作为MVC(Model-View-Controller)模式的一部分,用来处理用户请求并将其分发给相应的处理程序(即路由匹配)。 (一) 解决问题 将请求的处理流程集中管理,统一处理所有的请求 (二) 使用场景 需…

向量数据库的特性、索引和分析权衡

向量数据库概述 向量数据库的特征 数据库多样性:向量数据库在实现、性能、可扩展性和易用性方面存在差异,支持语义搜索应用。融资与地理位置:多数向量数据库初创公司集中在加州湾区,但资金并不直接反映数据库能力。编程语言&…

【前端素材】推荐优质后台管理系统Dashmin平台模板(附源码)

一、需求分析 后台管理系统在多个层次上提供了丰富的功能和细致的管理手段,帮助管理员轻松管理和控制系统的各个方面。其灵活性和可扩展性使得后台管理系统成为各种网站、应用程序和系统不可或缺的管理工具。 后台管理系统是一种具有多层次结构的软件系统&#xf…

【DDD】学习笔记-领域模型与数据模型

领域模型与数据模型 领域驱动的设计模型最重要的概念就是聚合,同时,聚合还要受到限界上下文边界的控制。Eric Evans 之所以要引入限界上下文,其中一个重要原因就是因为我们“无法维护一个涵盖整个企业的统一模型”,于是需要限界上…

我花了5天时间,开发了一个在线学习的小网站

大三寒假赋闲在家,闲来无事,用了5天时间做了一个在线学习的小网站,一鼓作气部署上线,制作的过程比较坎坷。内心经历过奔溃,也经历过狂喜。 按照惯例先放出网址,欢迎大家来访问学习:www.pbjlove…

滑动窗口刷题(二)

目录 1.最大连续1的个数 III 1.题目解析 2.算法原理 2.1暴力枚举(不过多介绍) 2.2双指针优化 3.代码编写 2. 将 x 减到 0 的最小操作数 1.题目解析 2.算法原理 2.1滑动窗口 3.代码编写 3. 水果成篮 1.题目解析 2.算法思路 2.1滑动窗口哈希…

关于电脑功耗与电费消耗的问题,你了解多少?

一台电脑24小时运行需要多少电量? 大家好,我是一名拥有多年维修经验的上门维修师傅。 今天我就来回答大家关于电脑24小时运行需要多少电量的问题。 电脑功耗及用电量 首先我们来看看电脑的功耗情况。 普通台式电脑的功耗通常在300瓦左右,即…

《The Art of InnoDB》第二部分|第4章:深入结构-磁盘结构-redo log

4.3 redo log 目录 4.3 redo log 4.3.1 redo log 介绍 4.3.2 redo log 的作用 4.3.3 redo log file 结构 4.3.4 redo log 提交逻辑 4.3.5 redo log 持久化逻辑 4.3.6 redo log 检查点 4.3.7 小结 未完待续.... 上文我们学习了表空间,下面我们来介绍日志系统…

vue从flask获取数据并显示

记录一个前后端分离遇到的问题,即vue前端从flask后端获取数据。具体描述如下:flask只负责连接数据库并获取数据库的数据,并返回给前端vue;vue则需要获取后端返回的数据并显示。 方法如下,分别用一个vue组件和一个flas…

torch.nn.embedding的介绍和用法

nn.Embedding 是 PyTorch 中的一个神经网络层,它主要用于将离散的、高维的数据(如词索引)转换为连续的、低维的空间中的稠密向量表示。在自然语言处理(NLP)中,这个层通常用于实现词嵌入(Word Em…

ES6内置对象 - Map

Map(Map对象保存键值对,键值均不限制类型) 特点: 有序(Set集合是无序的);键值对(键可以是任意类型);键名不能重复(如果重复,则覆盖&…

自考《计算机网络原理》考前冲刺

常考选择填空 1、计算机网络的定义:计算机网络是互连的、自治的计算机的集合。 2、协议的定义:协议是网络通信实体之间在数据交换过程中需要遵循的规则或约定 3、协议的3个要素 (1) 语法:定义实体之间交换信息的格式与结构,或…

经典Go知识点总结

开篇推荐 来来来,老铁们,男人女人都需要的技术活 拿去不谢:远程调试,发布网站到公网演示,远程访问内网服务,游戏联机 推荐链接 1.无论sync.Mutex还是其衍生品都会提示不能复制,但是能够编译运行 加锁后复制变量,会将锁的状态也复制,所以 mu1 其实是已…

Docker Container(容器)

"在哪里走散,你都会找到我~" Docker 容器 什么是容器? 通俗来讲,容器是镜像运行的实体。我们对于镜像的认知是,“存储在磁盘上的只读文件”。当我们启动一个容器的本质,就是启动一个进程,即容器…

c语言字符函数和字符串函数

目录 1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strcat的使用和模拟实现6. strcmp的使用和模拟实现7. strncpy函数的使用8. strncat函数的使用9. strncmp函数的使用10. strstr的使用和模拟实现11. strtok函数的使用12. strerror函数…

【kubernetes】二进制部署k8s集群之master节点和etcd数据库集群(上)

目录 前言:关于整个k8s集群的主机规划以及本文部署架构 步骤一:完成操作系统初始化配置 步骤二:完成etcd集群部署 关于etcd集群 ①准备签发证书环境 ②先完成单独一个节点的部署 ③通过部署好的etcd01节点 完成另外两个节点的部署 拓展…