精品代码,接稳了!EI顶刊复现:计及风电波动及电解槽运行特性的电氢混合储能容量优化配置程序代码!

适用平台/参考文献:Matlab+Yalmip+Cplex/Gurobi;

参考文献:中国电机工程学报首发论文《平抑风电波动的电-氢混合储能容量优化配置》

程序首先利用EMD将原始风电功率信号分解为直接并网分量和混合储能系统(HESS)功率任务;然后,在电化学储能和氢储能的充放电功率约束和存储状态约束的基础上,制定计及碱性电解槽运行特性的能量管理策略;基于此策略,建立以HESS的总成本最小为目标函数,用于平抑风电波动的HESS容量配置模型;最后利用遗传算法求解得到配置结果。程序中算例丰富、注释清晰、干货满满,超级精品,创新性很高!下面对文章和程序做简要介绍!

程序创新点:

提出以氢储能为主,电化学储能为辅的混合储能系统能量管理策略;

采用K-means算法对某区域全年风电数据进行聚类,得到8个风电出力场景;

充分挖掘碱性电解槽运行特性,通过强化电化学储能和氢储能之间的互补机制,应对碱性电解槽的低功率运行问题;

主要工作:

针对电-氢混合系统协同平抑接入新型电力系统的新能源波动问题,提出考虑碱性电解槽运行特性的电-氢混合储能容量优化配置方案。首先基于经验模态分解,将原始风电功率信号分解为符合波动量限值的直接并网分量和混合储能功率任务;在综合考虑电化学储能和氢储能介质充放电功率约束和存储状态约束的基础上,制定计及碱性电解槽运行特性的混合储能能量管理策略。基于此策略,以综合成本最小为目标,建立用于平抑风电波动的电-氢混合储能容量配置模型,并通过实际数据进行计算分析,算例结果表明,所提策略下的容量配置方案,在满足平抑需求的前提下,可以有效提高系统经济性。

经验模态分解(EMD):

EMD其实就是一种对信号进行分解的方法,与傅里叶变换、小波变换的核心思想一致,大家都想将信号分解为各个相互独立的成分的叠加;只不过傅里叶变换以及小波变换都要求要有基函数,而EMD却完全抛开了基函数的束缚,仅仅依据数据自身的时间尺度特征来进行信号分解,具备自适应性。由于无需基函数,EMD几乎可以用于任何类型信号的分解,尤其是在非线性、非平稳信号的分解上具有明显的优势。

EMD的目的是将信号分解为多个本征模函数(IMF)的叠加。IMF必需要满足以下两个条件:

(1)函数在整个时间范围内,局部极值点和过零点的数目必须相等,或最多相差一个;

(2)在任意时刻点,局部最大值的包络(上包络线)和局部最小值的包络(下包络线) 平均必须为零。

碱性电解槽:

碱性电解水制氢是指在碱性电解质环境下进行电解水制氢的过程,电解质一般为30%质量浓度的KOH溶液或者26%质量浓度的NaOH溶液。在这种电解槽中,水分子在阳极分解为氧气和负离子,负离子随后通过电解质迁移到阴极,在那里结合以产生氢气。碱性电解槽主要优点是成本低、操作简便。然而,它们的效率相对较低,并且在较高温度下可能会失效。

混合储能框架:

程序结果:

(1)生成全年级风电出力数据

(2)生成K-means聚类风电典型场景

(3)不同波动量限值下并网功率与平抑功率结果

(4)计算并网波动功率限值下的典型日平抑需求

​(5)超级电容容量配置与改进

改进前:

​改进后:

部分程序:

P_Wind1=P_Wind1'/max(P_Wind1)*2348*0.65; %MW ​最大出力按照容量的0.65折算   
plot(P_Wind1);xlabel('时刻/min');  ​ylabel('功率/MW');        
title('风电分度值出力');
%%将风电钟分度值的出力折算成15min的
P_Wind15 = zeros(1,30*24*4);
for i = 1:30*24*4
P_Wind15(1,i) = sum(P_Wind1(1,15*i-14:15*i))/15;​
plot(P_Wind15);
xlabel('时刻/min'); ​ylabel('功率/MW');        
title('5月份某月风电15分钟分度值的出力');
%%  将不同时间级别相比的波动值画出来
P_Wind15_1 = zeros(1,30*24*60);
for i = 1:30*24*4
P_Wind15_1(1,15*i-14:15*i) = P_Wind15(1,i);
P_Wind1_bodong = P_Wind1(1,1:43200)-P_Wind15_1;
plot(P_Wind1_bodong);
xlabel('时刻/min'); ylabel('功率/MW');        
title('1min相对于15min的风电出力波动');
%%引入另一个15min分度值的的风电出力数据
load('风电全年出力数据15min');
P_WindY15 = sum(Wind_Power,1);
P_WindY15 = P_WindY15/max(P_WindY15)*2348*0.65;  %MW最大出力按照容量的0.65折算
%% 将15min扩充为1min
for  i = 1:35040P_WindY1(1,15*i-14:15*i) = P_WindY15(1,i);   
plot(P_WindY1);xlabel('时刻/15min'); ylabel('功率/MW'); 
title('全年15min的风电出力');
%% 引入风电出力1min的波动量
P_Wind_bodong365_1 =repmat(P_Wind1_bodong,1,13);
%% 将这个波动量加在年15min运行数据上
P_WindY1 = P_WindY1+P_Wind_bodong365_1(1,1:525600);
P_WindY1 = max(0,P_WindY1);​
plot(P_WindY1);​xlabel('时刻/1min');       
ylabel('功率/MW'); title('全年1min的风电出力');​
save('​WindY1.mat','WindY1');%保存min数据
P_WindY5 = zeros(1,365*24*12);
for i = 1:365*24*12
P_WindY5(1,i)=sum(P_WindY1(1,5*i-4:5*i))/5;​
save('WindY5.mat','​WindY5');%保存15min数据

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

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

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

相关文章

算法训练营Day60(单调栈)

84.柱状图的最大矩形 84. 柱状图中最大的矩形 - 力扣&#xff08;LeetCode&#xff09; 注意首尾加0的细节就可 class Solution {public int largestRectangleArea(int[] heights) {Deque<Integer> stack new LinkedList<>();int[] newHeight new int[heights.…

探索 Xind3 生态系统,解锁铭文资产的新玩法

铭文市场的兴起&#xff0c;不仅是新资产发行方案向市场的代表&#xff0c;更是新资产革命的代表。通过“公平启动”的方式&#xff0c;任何人都可以按照先到先得的原则“铸造”资产。虽然这看起来是意识形态上的新升级&#xff0c;但实际上最火的铭文风潮是由CEX引发的。 我们…

R语言【taxlist】——merge_taxa():整合概念和移除名称

Package taxlist version 0.2.4 Description 将分类概念合并为单个 taxlist 对象。 Usage merge_taxa(object, ...)## S3 method for class taxlist merge_taxa(object, concepts, level, print_output FALSE, ...) Arguments 参数【object】&#xff1a;taxlist 对象。 参…

Linux命令-apropos命令(在 whatis 数据库中查找字符串)

补充说明 apropos命令 在一些特定的包含系统命令的简短描述的数据库文件里查找关键字&#xff0c;然后把结果送到标 准输出。 如果你不知道完成某个特定任务所需要命令的名称&#xff0c;可以使用一个关键字通过Linux apropos实用程 序来搜索它。该实用程序可以搜索关键字并且…

nodejs实现grafana报表

实现grafana发送周报,目前了解到有三种方法, grafana-report(第三方)nodejs模块(第三方)grafana-reporting(grafana企业版)线上环境在dev-host-sys006机器上,就nodejs怎么实现grafana报表进行流程测试,预防出现问题不知道怎么排查 以下为测试 源码地址 https://github.…

Windows上安装Linux系统

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、WSL是什么&#xff1f;二、WSL安装步骤1.开启wsl支持2.安装wsl3.运行wsl4.环境配置 三、WSL删除引用 前言 提示&#xff1a;这里可以添加本文要记录的大概…

Dockerfile简介和基础实践

文章目录 1、Dockerfile简介1.1、Dockerfile解决的问题1.2、docker build 构建流程1.3、关键字介绍 2、Dockerfile 实践2.1、基本语法实践 --- golang2.1.1 问题检查 2.2、基本语法实践 --- gcc 总结 1、Dockerfile简介 Dockerfile是一个创建镜像所有命令的文本文件, 包含了一…

力扣541 反转字符串Ⅱ Java版本

文章目录 题目描述代码自己需要注意的地方 题目描述 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。 如果剩余字符小于…

STM32 PWM驱动设计

单片机学习&#xff01; 目录 文章目录 前言 一、PWM驱动配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 配置时基单元 2.3 配置输出比较单元 2.4 配置GPIO 2.5 运行控制 三、PWM周期和占空比计算 总结 前言 PWM本质是利用面积等效原理来改变波形的有效值。 一、PWM驱动…

C++初阶入门之命名空间和缺省参数的详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.命名空间 2.1命名冲突的例子 2.2解决方案 2.3命…

操作Date时间方法

文章目录 1. 两个Date时间类型数值做对比1、使用Date类&#xff1a;2、使用LocalDateTime类&#xff1a; 2. 字符串转Date1、使用SimpleDateFormat类&#xff1a;2、使用DateTimeFormatter类&#xff1a; 3. new Date()格式化字符串 年月日4. 两个date数据类型相差天数1、 计算…

SPA单页面的讲解(超级详细)

目录 一、什么是SPA 二、SPA和MPA的区别 单页应用与多页应用的区别 单页应用优缺点 三、实现一个SPA 原理 实现 hash 模式 history模式 四、题外话&#xff1a;如何给SPA做SEO SSR服务端渲染 静态化 使用Phantomjs针对爬虫处理 一、什么是SPA SPA&#xff08;sin…

这是一片测试文章

这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 真的是测试文章 -111122225555444433333333222211111 dddddaaa

❤css实用

❤ css实用 CSS渐变色边框&#xff08;Gradient borders方法的汇总 5种-代码可直接下载&#xff09; 资源链接 https://download.csdn.net/download/weixin_43615570/88779950?spm1001.2014.3001.5503 给 border 设置渐变色是很常见的效果&#xff0c;实现这个效果有很多思路…

近20k stars,GSYVideoPlayer一款优秀的视频播放器

近20k stars&#xff0c;GSYVideoPlayer一款优秀的视频播放器 引言 在现代社会中&#xff0c;视频已经成为人们获取信息和娱乐的重要形式。为了提供更好的观看体验&#xff0c;开发一款优秀的视频播放器变得至关重要。而GSYVideoPlayer作为一款功能强大、稳定可靠的视频播放器…

浙江机电职业技术学院第八届新生亮相赛(同步赛)D.一种很新的阶乘【线性筛+一分为二法】

原题链接&#xff1a;https://ac.nowcoder.com/acm/contest/73799/D 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 夜雷很喜欢特别大的数字&#xff0c;曾经一度算阶乘…

没指定spring-boot-maven-plugin版本导致编译失败,这坑你踩过没

文章目录 1. 前言2. 组件版本信息3. 事件经过3.1 本地通过maven命令打包3.2 定位问题步骤3.2.1 核对spring-boot-maven-plugin版本信息3.2.2 spring-boot-maven-plugin版本错误原因 3.3 解决方案 4.结论 1. 前言 我们在平时开发过程中关注的比较多的是项目开发时依赖包的版本以…

lightdb object支持static函数

文章目录 背景介绍语法示例 背景 在信创适配中&#xff0c;从Oracle迁移过来的程序使用STATIC函数。为此LightDB从24.1版本开始&#xff0c;对该功能进行了支持。 介绍 LightDB 24.1版本中对象方法包括下列几种&#xff1a; MEMBER方法&#xff1a;MEMBER方法可以被对象实例…

数据结构(绪论+算法的基本概念)

文章目录 一、绪论1.1、数据结构的基本概念1.2、数据结构三要素1.2.1、逻辑结构1.2.2、数据的运算1.2.3、物理结构&#xff08;存储结构&#xff09;1.2.4、数据类型和抽象数据类型 二、算法的基本概念2.1、算法的特性2.2、“好”算法的特质2.2.1、算法时间复杂度2.2.2、算法空…

java数学计算工具类 double精确的加法算法 double精确的减法算法

java数学计算工具类 double精确的加法算法 double精确的减法算法 精确的乘法算法 对精确的除法运算&#xff0c;当发生除不尽的 保留小数、数值精度 精确的加法算法:2.27 精确的减法算法:0.01 精确的乘法算法:1.2882 相对精确的除法运算&#xff0c;当发生除不尽的情况时&…