考虑储能电池参与一次调频技术经济模型的容量配置方法(matlab代码)

目录

1 主要内容

储能参与调频原理

储能参与一次调频的充放电策略

2 部分代码

3 程序结果

4 下载链接


主要内容

该程序复现文献《考虑储能电池参与一次调频技术经济模型的容量配置方法》模型,以调频效果最优为目标,考虑储能参与一次调频的充放电策略,在电网频率偏差已知的情况下,通过引入储能设备调节频率偏差,从而优化得到最佳储能容量,该程序只考虑调频效果最优,并未考虑经济性,但是原理是互通的,只需修改目标函数即可;该程序采用粒子群编程,注意:不是simulink模型,相关储能参与调频的simulink模型也会陆续更新,大家敬请期待!该程序和原文献一致,通过soc最小值、soc最大值、购电、售电和储能出力最大值五个参数作为优化变量,采用粒子群进行求解,并设置购售电、储能出力、soc等约束,程序优化效果不错,值得参考学习!

 

  • 储能参与调频原理

原理图如下图:

当负荷突然增加时,负荷频率特性曲线将由 L1( Δf) 移 至 L2 ( Δf) ,由 传 统 电 源 的 功 频 曲 线G( Δf) 可知其会自动增加出力,以阻止频率进一步下降,电网运行点将由稳定运行点 a 移至 b 点,对应的频率偏差从 0 下降至 Δf1 ( 其为负值) 。此时,利用储能电池模拟传统电源的下垂特性以实现参与一次调频,通过设置储能电池的虚拟单位调节功率 KE,对应储能电池的出力为如图 1 所示的 PE值。
简而言之,电网中的传统电源功率或负荷发生变化时,必然会引起电网频率的变化。当电网供电大于负荷需求时,电网频率会上升,此时应控制储能电池从电网吸收功率; 当电网供电小于负荷需求时,电网频率会下降,此时应控制储能电池释放功率至电网。
  • 储能参与一次调频的充放电策略

上图是以调频效果最优为目标的储能参与调频流程图,和介绍一致,以soc最小值、soc最大值、购电、售电和储能出力最大值五个参数作为优化变量,以频率偏差最小为目标。具体调频策略如下:

部分代码

%%  变量定义如下:
% 决策变量:% 较高, 较低, 购电,售电,最大值
% x=[soc_h, soc_l, P_b,P_s,P_m]; 
​
clc;
clear;
close all;
​
%% 算法参数
parameter;
​
nVar=5;              % Number of Decision Variables
VarMin=[ones(1,2)*soc_min, ones(1,1)*0, ...ones(1,1)*0, ones(1,1)*0]; % Lower Bound of Variables
VarMax=[ones(1,2)*soc_max, ones(1,1)*P_max, ...ones(1,1)*P_max, ones(1,1)*P_max]; % Upper Bound of Variables
MaxIt=30;      % Maximum Number of Iterations
nPop=10;        % Population Size (Swarm Size)
​
%% 计算
[ bestPosition, fitValue ] = ...
PSOFUN( @fun_objective,nVar,VarMin,VarMax,MaxIt,nPop );
x=bestPosition;
​
[fun,g,Pt,ft,Q_soc] = fun_jieguo(x);
disp('输出结果')
disp('J1  Qsoc,high  Qsoc,low   P,buy  P,sell  P,rated  Qsoc,rms   E,rated')
fun;
%% 各个决策变量的含义 
soc_h = x(1)  ;    % 较高
soc_l = x(2)   ;   % 较低
P_b = x(3)  ;     % 购电
P_s = x(4)   ;    % 售电
P_m = fix(x(5));        % 最大值
E_b=0.32*P_m ;    %储能容量
Q_soc;
J1=fun 
Qsoc_high=soc_h 
Qsoc_low=soc_l  
P_buy=P_b 
P_sell=P_s  
P_rated=P_m  
Qsoc_rms=Q_soc 
E_rated=E_b
%% 画图
figure
plot(u1)
title('优化前频率偏差')
xlabel('时间 / s')
ylabel('频率偏差/ Hz')
legend('频率偏差')
​
figure
plot(ft)
title('优化后频率偏差')
xlabel('时间 / s')
ylabel('频率偏差 / Hz')
legend('频率偏差')
​
figure
plot(-Pt)
title('储能出力')
xlabel('时间 / s')
ylabel('出力 / MW')
legend('储能出力')

程序结果

4 下载链接

见下方!

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

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

相关文章

如何开发小程序 3 个月赚 6.18 元

前言 随着 Ai 的崛起,开发者的就业也越来越困难,好像疫情放开后整个世界都变了,全球都在经历经济下行的压力。那么作为个人开发者如何在工作之余获取额外收入呢?笔者也是个一般开发者,没有牛逼的技术实力,…

Eureka:服务注册-信息配置-自我保护机制

首先在提供者服务下&#xff0c;添加一个依赖 <!-- Eureka --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version><…

常见前端面试之VUE面试题汇总七

20. 对 vue 设计原则的理解 1.渐进式 JavaScript 框架&#xff1a;与其它大型框架不同的是&#xff0c;Vue 被设计 为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上 手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代化的…

智慧课堂学生行为检测评估算法

智慧课堂学生行为检测评估算法通过yolov5系列图像识别和行为分析&#xff0c;智慧课堂学生行为检测评估算法评估学生的表情、是否交头接耳行为、课堂参与度以及互动质量&#xff0c;并提供相应的反馈和建议。智慧课堂学生行为检测评估算法能够实时监测学生的上课行为&#xff0…

c语言中编译过程与预处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、c语言的编译与链接1、编译与链接概述2、编译与链接详解 二、c语言预处理1.c语言中内置的预定义符号2、#define定义标识符3、#define定义宏4、#define 替换规…

理解图傅里叶变换和图卷积

图神经网络&#xff08;GNN&#xff09;代表了一类强大的深度神经网络架构。在一个日益互联的世界里&#xff0c;因为信息的联通性&#xff0c;大部分的信息可以被建模为图。例如&#xff0c;化合物中的原子是节点&#xff0c;它们之间的键是边。 图神经网络的美妙之处在于它们…

缓存最佳实践

目录 前言 一、Cache Aside&#xff08;旁路缓存&#xff09;策略 二、不一致解决场景及解决方案 一、数据库主从不一致 二、缓存与数据库不一致 三、问题分析 三、缓存误用 一、多服务共用缓存实例 二、调用方缓存数据 三、缓存作为服务与服务之间传递数据的媒介 四…

Android相机-HAL子系统

引言 应用框架要通过拍照预览摄像获得照片或者视频,就需要向相机子系统发出请求, 一个请求对应一组结果 一次可发起多个请求&#xff0c;并且提交请求是非阻塞的&#xff0c;始终按照接收的顺序以队列的形式先进先出地进行顺序处理 一个请求包含了拍摄和拍照配置的所有信息&…

【宝藏系列】一文带你梳理 Linux 的五种 IO 模型

【宝藏系列】一文带你梳理 Linux 的五种 IO 模型 文章目录 【宝藏系列】一文带你梳理 Linux 的五种 IO 模型&#x1f468;‍&#x1f3eb;前言1️⃣用户态和核心态1️⃣1️⃣用户态和核心态的切换 2️⃣进程切换3️⃣进程阻塞4️⃣文件描述符(fd, File Descriptor)5️⃣缓存I/O…

Docker容器学习:Dockerfile制作Web应用系统nginx镜像

目录 编写Dockerfile 1.文件内容需求&#xff1a; 2.编写Dockerfile&#xff1a; 3.开始构建镜像 4.现在我们运行一个容器&#xff0c;查看我们的网页是否可访问 推送镜像到私有仓库 1.把要上传的镜像打上合适的标签 2.登录harbor仓库 3.上传镜像 编写Dockerfile 1.文…

【Java 高阶】一文精通 Spring MVC - 转发重定向(四)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

Linux TCP协议——三次握手,四次挥手

一、TCP协议介绍 TCP协议是可靠的、面向连接的、基于字节流的传输层通信协议。 TCP的头部结构&#xff1a; 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;&#xff08;tcp是传输层的协议&#xff0c;端与端之间的数据传输&#xff0c;在TCP和UDP协议当中不会体现出I…

时序预测 | MATLAB实现PSO-KELM粒子群算法优化核极限学习机时间序列预测(含KELM、ELM等对比)

时序预测 | MATLAB实现PSO-KELM粒子群算法优化核极限学习机时间序列预测&#xff08;含KELM、ELM等对比&#xff09; 目录 时序预测 | MATLAB实现PSO-KELM粒子群算法优化核极限学习机时间序列预测&#xff08;含KELM、ELM等对比&#xff09;预测效果基本介绍模型介绍程序设计参…

小研究 - Java虚拟机性能及关键技术分析

利用specJVM98和Java Grande Forum Benchmark suite Benchmark集合对SJVM、IntelORP,Kaffe3种Java虚拟机进行系统测试。在对测试结果进行系统分析的基础上&#xff0c;比较了不同JVM实现对性能的影响和JVM中关键模块对JVM性能的影响&#xff0c;并提出了提高JVM性能的一些展望。…

简单shell脚本的编写

shell脚本就是将命令写入文本中&#xff0c;文本可以被执行。 脚本&#xff1a;本质是一个文件&#xff0c;文件里面存放的是 特定格式的指令&#xff0c;系统可以使用脚本解析器 翻译或解析 指令 并执行&#xff08;它不需要编译&#xff09; shell 既是应用程序&#xff0c…

【Android】 No matching variant of com.android.tools.build:gradle:[版本号] was found

项目报错 No matching variant of com.android.tools.build:gradle:8.1.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute …

PlantUML文本绘制类图

记录下文本绘制类图的语法 参考 https://juejin.cn/post/6844903731293585421 类的UML表示 使用UML表示一个类&#xff0c;主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、 表示 private、protected、public。 如图所示&#xff0c;表示A类有一个…

【力扣】59. 螺旋矩阵 II <模拟>

【力扣】59. 螺旋矩阵 II 给你一个正整数 n n n &#xff0c;生成一个包含 1 到 n 2 n^2 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n n n n nn 正方形矩阵 m a t r i x matrix matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,…

[C++ 网络协议] 套接字的多种可选项

目录 1. 套接字的可选项 2. 获取/设置套接字可选项 2.1 getsockopt函数&#xff08;获取套接字可选项&#xff09; 2.2 setsockopt函数&#xff08;设置套接字可选项&#xff09; 3. 常用套接字可选项 3.1 SOL_SOCKET协议层的SO_TYPE可选项 3.2 SOL_SOCKET协议层的SO_SN…

Qt6和Rust结合构建桌面应用

桌面应用程序是原生的、快速的、安全的&#xff0c;并提供Web应用程序无法比拟的体验。 Rust 是一种低级静态类型多范式编程语言&#xff0c;专注于安全性和性能&#xff0c;解决了 C/C 长期以来一直在努力解决的问题&#xff0c;例如内存错误和构建并发程序。 在桌面应用程序开…