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

news2024/12/24 1:17:52

适用平台: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;

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

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

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

相关文章

VoVNet(CVPR workshop 2019)原理与代码解析

paper:An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection third-party implementation:https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/vovnet.py 存在的问题 DenseNet通过密…

泰山派学习笔记(二)一步一步编译SDK文件

上一节,我们安装了基于虚拟机的ubuntu系统,并且建立了samba服务打通了win10和ubuntu系统中的文件传输。本节课我们继续对立创官方提供的SDK文件进行编译,学习编译的方法。引用官方的话:如果只想下载别人编译好的固件并且做一些应用…

Linux系统运维:离线安装sar-性能监视和分析工具

目 录 一、前言 二、系统环境 三、安装sar (一)准备工作 1、下载 sar 工具的安装包: 2、将安装包传输到 CentOS 服务器 (二)安装工作 1、解压 2、配置安装 3、编译 4、安装 (三&#xff0…

Ubuntu环境安装MySQL数据库

1.安装过程 打开终端(Terminal)窗口,使用以下命令更新系统软件包: sudo apt update ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下: sudo apt-get instal…

15万-20万选纯电车,真劝你不要买合资和新势力

文 | AUTO芯球 作者 | 雷歌 我是怕了, 在后台,不断有朋友要我推荐20万以下/15万以内的纯电车。 比如这位,真心“求”我推荐一下15万以内的车,然后顺带骂我一通“就知道黑”。 好家伙,一边求人办事,一边…

Freertos实时操作系统---基于STM32

一、Freertos简介 1.Freertos介绍 1)RTOS指的是一类的实时操作系统 2)rtos的使用:用户根据对任务来设置其优先级然后来使用调度器来决定哪一个任务来先执行。 3)Freertos的文件数量远低于其他操作系统 4)主要特点&…

力扣经典题目解析--两数之和

两数之和 题目地址: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 简单来说就是在一个数组中找出两个数,这两个数相加要等于给定的target,下面是完整的题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中…

按照指定的分隔符对字符串进行分割 numpy.char.partition()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 按照指定的分隔符 对字符串进行分割 numpy.char.partition() [太阳]选择题 请问关于以下代码表述正确的是? import numpy as np a np.array([12_3, 4_5_6]) print(&quo…

一次有趣的nginx Tcp4层代理转发的试验

nginx主配置文件添加配置: stream {log_format proxy $remote_addr [$time_local] $protocol status:$status bytes_sent:$bytes_sent bytes_received:$bytes_received $session_time upstream_addr:"$upstream_addr" "$upstream_bytes_sent" …

Java里常用的集合哪些是线程安全的和不安全的

最近在做一个业务的时候,需要考虑线程的安全性,然后选用集合的时候专门去整理了一下。 线程安全的是: Hashtable,ConcurrentHashMap,Vector ,CopyOnWriteArrayList ,CopyOnWriteArraySet 线程不安全的是: H…

非常实用的利用SAM分割一切大模型,进行抠图。

目录 SAM简介 实现方法 SAM简介 引言: 介绍人工智能(AI)的发展趋势,特别是在图像分割领域。强调基础模型在AI发展中的作用,以及Meta AI开发的SAM模型如何定义这个新的里程碑。 SAM的介绍: 背景&#x…

【论文精读】OS-Copilot: Towards Generalist Computer Agents with Self-Improvement

OS-Copilot: Towards Generalist Computer Agents with Self-Improvement 前言ABSTRACT1 INTRODUCTION2 THE OS-COPILOT FRAMEWORK2.1 PLANNER2.2 CONFIGURATOR2.2.1 DECLARATIVE MEMORY2.2.2 PROCEDURAL MEMORY2.2.3 WORKING MEMORY 2.3 ACTOR 3 THE FRIDAY AGENT3.1 A RUNNIN…

VS中使用xcopy生成后命令报9009错误

错误现象: download下来的代码,在另一台电脑能使用生成后命令xcopy,换一台电脑后该命令不能使用,报如下错误: 2.错误原因: 这是因为xcopy /Y 为Windows程序命令,xcopy其实是Windows下的一个xcopy.exe,如果…

【Spring】声明式事务 spring-tx

文章目录 声明式事务是什么?一、Spring事务管理器二、基于注解的声明式事务1.1 准备工作1.2 基本事务控制1.3 事务属性:只读1.4 事务属性:超时时间1.5 事务属性:事务异常1.6 事务属性:事务隔离级别1.7 事务属性&#x…

redis架构系列——生产常用的部署模式介绍

主从高可用模式 这是最基本的高可用模式,它允许数据从主节点自动复制到一个或多个从节点。这种模式下,从节点可以处理读操作,从而实现负载均衡,并提供故障恢复的基本功能。然而,它的故障恢复不能自动化,写操…

Java核心-核心类与API(2)

话接上回,继续核心类与API的学习,这次介绍StringBuffer/StringBuilder/StringJoiner类。StringBuffer和StringBuilder是我们学习的重点,建议对比学习,做好区分。 一、StringBuffer类 1、概述 1)问题 由于 String 类…

每日OJ题_牛客OR59_字符串中找出连续最长的数字串

目录 牛客OR59 字符串中找出连续最长的数字串 解析代码 牛客OR59 字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 解析代码 #include <iostream> #include <cctype> using namespace std; int main() {string str, tmp "&q…

Stable Diffusion 3 震撼发布,采用Sora同源技术,文字终于不乱码了

Stable Diffusion 3 和 Sora 一样采用了 diffusion transformer 架构。 继 OpenAI 的 Sora 连续一周霸屏后&#xff0c;昨晚&#xff0c;生成式 AI 顶级技术公司 Stability AI 也放了一个大招 ——Stable Diffusion 3。该公司表示&#xff0c;这是他们最强大的文生图模型。 与…

Uniapp-小程序简单的时间选择组件-年月日时分

文章目录 前言一、组件效果二、组件代码使用 总结 前言 uniapp小程序开发系列。本文实现一个简单时间选择控件。uniapp用个心仪时间控件真的麻烦。官方给得要么年月日&#xff0c;要么时分。产品只要年月日时分。这该怎么玩。旧项目没有引入ui框架&#xff0c;我也不想去引入&…

调查居民幸福指数的社会实践报告

引言 在快速发展的现代社会中&#xff0c;居民的幸福感成为了衡量一个社区、一个城市乃至一个国家综合实力的重要指标之一。幸福指数不仅反映了居民的生活质量和满意度&#xff0c;也是政府制定和调整政策&#xff0c;提升民众生活水平的重要依据。因此&#xff0c;本次社会实践…