精品代码,接稳了!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.…

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是一个创建镜像所有命令的文本文件, 包含了一…

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命…

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作为一款功能强大、稳定可靠的视频播放器…

没指定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. 前言 我们在平时开发过程中关注的比较多的是项目开发时依赖包的版本以…

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

文章目录 一、绪论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;当发生除不尽的情况时&…

领域驱动设计(Domain-Driven Design DDD)——通过重构找到深层次模型1

一、概述 重构就是在不改变软件功能的前提下重新设计它。开发人员无需在着手开发之前做出详细的设计决策&#xff0c;只需要在开发过程中不断小幅调整设计即可&#xff0c;这不但能够保证软件原有的功能不变&#xff0c;还可使整个设计更加灵活易懂。 我们面临的真正挑战是找到…

java使用MD5加密

java使用MD5加密 源字符串&#xff1a;三四五 使用 UTF-8字符集字符集加密后的结果为:f2615f1dab4520fc1e1a79ed6a4f7b37 用 GB2312 字符集加密后的结果为:1dbb006b41466197c486592727af516f 用 GBK 字符集加密后的结果为:1dbb006b41466197c486592727af516f

TCP 状态转换以及半关闭

TCP 状态转换&#xff1a; 上图中还没有进行握手的时候状态是关闭的。 三次握手状态的改变&#xff1a; 客户端发起握手。 调用 connect() 函数时状态转化为&#xff1a;SYN_SENT。调用 listen() 函数时状态转换为&#xff1a;LISTEN。ESTABLISHED是被连接的状态。 四次挥手…

httprunnerV4.X的基本使用详解

目录 1、httprunner概述 1.1、httprunner的优点 2、httprunner的安装 3、基本命令的使用 3.1、生成脚手架 3.2、将har文件转换为测试用例文件 3.3、执行测试用例 3.4、为项目创建虚拟环境&#xff0c;然后安装httprunner库 3.4、执行测试用例生成测试报告 4、httprun…

CSS 双色拼接按钮效果

<template><view class="sss"><button> <!-- 按钮 --><view class="span"> 按钮 </view> <!-- 按钮文本 --></button></view></template><script></script><style>body {b…

【Git】windows系统安装git教程和配置

一、何为Git Git(读音为/gɪt/)是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。 二、git安装包 有2种版本&#xff0c;Git for Windows Setup和Git for Windows Portable(便携版)两个版本都可以。 三、Git for Windows Por…

应急响应红蓝工程师白帽子取证Linux和windows入侵排查还原攻击痕迹,追溯攻击者,以及各种木马和病毒以及恶意脚本文件排查和清除

应急响应红蓝工程师白帽子取证Linux入侵排查还原攻击痕迹,追溯攻击者,以及各种木马和病毒以及恶意脚本文件排查和清除。 一般服务器被入侵的迹象,包括但不局限于:由内向外发送大量数据包(DDOS肉鸡)、服务器资源被耗尽(挖矿程序)、不正常的端口连接(反向shell等)、服务…

Go 知识chan

Go 知识chan 1. 基本知识1.1 定义1.2 操作1.3 操作限定1.4 chan 读写 2. 原理2.1 数据结构2.2 环形队列2.3 等待队列2.4 类型消息2.5 读写数据2.6 关闭chan 3. 使用3.1 操作符使用3.2 select3.3 for-range https://a18792721831.github.io/ 1. 基本知识 chan是go里面里面提供…